现在在尝试用pywinauto获取聊天记录
希望得到以下结果:
1、获取所有好友和群里的新消息
2、新消息的内容包括:好友名、好友号、消息内容,消息时间
3、有新消息来时,能点击打开,获取内容
未经验证或者自己测试过的,或者CHATGPT写的代码,不要浪费彼此时间
如果有写好的python代码可以抄写,不胜感激!
下面是我写的非常初级的代码,只能简单获取指定的某个群的前几条的内容
from pywinauto import Application
import time
import psutil
def get_winxin():
PID = 0
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
if 'WeChat.exe' == pinfo['name']:
PID = pinfo['pid']
return PID
PID = get_winxin()
wechat = Application(backend='uia').connect(process=PID)
win = wechat['微信']
dlg = win.child_window(title='聊天记录', control_type='Button')
dlg.draw_outline(colour='red')
dlg.click_input()
time.sleep(3)
# 获取聊天记录窗口和全部历史消息按钮
mes_dlg = wechat['XX微信群名']
mes_list = mes_dlg.child_window(title='全部', control_type='List')
# 遍历聊天记录列表项,获取聊天记录信息
print(mes_list)
for item in mes_list.children():
# 获取聊天时间和聊天内容等
mes_item = item.descendants(control_type="Text")
num1 = len(mes_item)
for i in range(num1):
print('内容', mes_item[i].window_text())
content_item = item.descendants(control_type="Edit") # 获取子项中的Edit控件
num2 = len(content_item)
print(num1, num2)
for i in range(num2):
print('内容', content_item[i].window_text())
print('-' * 30)