【问题描述】用Python如何操控微信发消息呢?
【小千解答】借助pywinauto库。
编写代码之前,要搞清楚微信的架构,包括窗口、控件等信息,可以使用以下工具:
Inspect v1.0.0.0:没下载到兼容Win10的版本,故在Win7环境下查看,可以显示微信图形界面的每一层结构
Microsoft Spy++ v10.00.30319:兼容Win10,只能看到微信的顶层窗口信息
ViewWizard v3.5.3:兼容Win10,只能看到微信的顶层窗口信息
查看效果:
代码如下:
from pywinauto.application import Application from pywinauto.win32functions import SetFocus from pywinauto import mouse from pywinauto.keyboard import send_keys wxapp = Application(backend='uia').connect(path='D:\Apps\WeChat\WeChat.exe') try: wxwnd = wxapp.window(class_name='WeChatMainWndForPC') wxwnd.set_focus() #窗口前置 except: send_keys('^%w') #Ctrl+Alt+W,显示窗口并前置 wxwnd = wxapp.window(class_name='WeChatMainWndForPC') wxwnd.wait('ready') btnchat = wxwnd.child_window(title='聊天',control_type='Button').rectangle() pos = ((btnchat.left+btnchat.right)//2,(btnchat.top+btnchat.bottom)//2) mouse.click(coords=pos) elehelper = wxwnd.child_window(title='文件传输助手',control_type='ListItem').rectangle() pos = ((elehelper.left+elehelper.right)//2,(elehelper.top+elehelper.bottom)//2) mouse.click(coords=pos) eleedit = wxwnd.child_window(title='输入',control_type='Edit') eleedit.type_keys('xqoffice.cn') send_keys('{ENTER}')
注:pywinauto库支持的【回车键】有3种写法:{ENTER}、~、{VK_RETURN}。
【附件】
【参考资料】