声明:简单!非常的简单!所以缺点和局限也非常的明显(毕竟就几十行代码)
代码如下:
from uiautomation import WindowControl, MenuControl
# 绑定微信主界面
wx = WindowControl(name='微信')
# 打印窗口信息
print(wx)
# 切换窗口
wx.SwitchToThisWindow()
# 绑定会话控件
hw = wx.ListControl(name='会话')
data = { # 一个字典 可以塞任意条数据 只要对面发的消息,能与Key相匹配,就会回复Key对应的Value
'你好': '我不好',
'再见': '拜拜',
}
while True: # 死循环
# 查找未读消息 参数为只查找列表前X项的未读消息
we = hw.TextControl(searchDepth=3)
# 死循环的维持,防止超时
while not we.Exists(0):
pass
# 存在未读的消息
if we.Name:
# 点击未读的消息
we.Click(simulateMove=False)
# 读取最后一条消息
last_msg = wx.ListControl(Name='消息').GetChildren()[-1].Name
# 判断对面发的消息,是否能与某一个Key相匹配
if last_msg in data:
msg = data[last_msg]
else:
msg = 'null'
# 能匹配到数据时,就是对面发的消息,能与某一个Key相匹配
if msg != 'null':
# 将数据输入
wx.SendKeys(msg, waitTime=0)
# 发送消息,其实就是按下Enter键
wx.SendKeys('{Enter}', waitTime=0)
msg = 'null'
# 让鼠标点击其他地方
we.Click(x=100, y=300)
# 不能匹配到数据时
else:
# 将数据输入
wx.SendKeys('哈哈', waitTime=0)
# 发送消息,其实就是按下Enter键
wx.SendKeys('{Enter}', waitTime=0)
# 让鼠标点击其他地方
we.Click(x=100, y=300)
首先,必须让微信置顶,其次微信不能有置顶(不管是联系人还是群聊还是公众号),然后就可以正常使用了(当然程序要一直在运行,微信的界面也要保持置顶)
其实有些语句写的并不合理,有很多的东西都可以优化的,像自动发送的数据的设定,还有一些点击的设置,一些条件。能让这个程序更加完善且好用。但本人只是出于测试,就不深入了。