羽中飞人 2023-06-30 22:47 采纳率: 48.1%
浏览 100
已结题

关于pywinauto自动化

现在在尝试用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)

  • 写回答

6条回答 默认 最新

  • yhuaqiang 2023-06-30 22:58
    关注

    去搜索大佬快帮问问吧

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月2日
  • 修改了问题 6月30日
  • 创建了问题 6月30日