【问题描述】用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}。

【附件】
【参考资料】
