使用python控制QQ窗口发送qq消息(微信电脑版同理)
(2018-05-23 15:43:54)分类: python |
发送qq消息要求已经登陆qq,而且qq的窗口是独立的,现在新版的qq一般都是将所有的聊天窗口聚合在一起,因此要设置将qq窗口分离,或者将需要发送消息的那个窗口单独分离出来。
上代码吧。
"""获取剪贴板文本"""
w.OpenClipboard()
d =
w.GetClipboardData(win32con.CF_UNICODETEXT)
w.CloseClipboard()
return
d
"""设置剪贴板文本"""
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT,
string)
w.CloseClipboard()
"""发送qq消息
to_who:qq消息接收人
msg:需要发送的消息
"""
#
将消息写到剪贴板
setText(msge)
#
获取qq窗口句柄
qq =
win32gui.FindWindow(None, towho)
print
qq
while qq
== 0:
qq =
win32gui.FindWindow(None, towho)
print
qq
#
投递剪贴板消息到QQ窗体
win32gui.SendMessage(qq, 258, 22, 2080193)
win32gui.SendMessage(qq, 770, 0, 0)
#
模拟按下回车键
win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN,
0)
win32gui.SendMessage(qq, win32con.WM_KEYUP, win32con.VK_RETURN,
0)
上代码吧。
#
coding=utf-8
#
原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口
# 之后模拟按键发送enter键发送消息
import win32gui
import win32con
import win32clipboard as w
def getText():
def setText(string):
def send_qq(towho, msge):
# 测试
#
特别备忘:下面中文字符串前面一定要记得加U或者用decode('utf-8')解码为unicode,这样系统会\
#
根据自我编码设置转换unicode.想不起来看自己博客上的博文详情。
to_who = u'吃饭讨论组'
msg = u'程序发送的文本内容'
send_qq(to_who, msg)
特别说明:to_who中填写的是聊天窗口的名字,而非QQ号码。(也就是是网名或备注名,具体的也可以在任务管理器中查看)
微信电脑版也是一样的,我试了一下,只需要更改一下消息窗口对应的那几组参数值即可。可用按键精灵来获得。