700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python登录qq定时发消息_python自动发送qq消息

python登录qq定时发消息_python自动发送qq消息

时间:2020-12-31 00:29:55

相关推荐

python登录qq定时发消息_python自动发送qq消息

以前看到网上一些小程序,在处理完事物后会自动发送qq消息,但是一直搞不懂是说明原理。也在网上找过一些python登陆qq发送消息的文字,但是都太复杂了。今天偶然看到一篇文章,是用python调用win32的接口发送qq消息的,觉得不错,就先记录下来,日后肯定会用得上这些小工具。

发送qq消息要求已经登陆qq,而且qq的窗口是独立的,现在新版的qq一般都是将所有的聊天窗口聚合在一起,因此要设置将qq窗口分离,或者将需要发送消息的那个窗口单独分离出来。

上代码吧

# 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口

# 之后模拟按键发送enter键发送消息

import win32gui

import win32con

import win32clipboard as w

def getText():

"""获取剪贴板文本"""

w.OpenClipboard()

d = w.GetClipboardData(win32con.CF_UNICODETEXT)

w.CloseClipboard()

return d

def setText(aString):

"""设置剪贴板文本"""

w.OpenClipboard()

w.EmptyClipboard()

w.SetClipboardData(win32con.CF_UNICODETEXT, aString)

w.CloseClipboard()

def send_qq(to_who, msg):

"""发送qq消息

to_who:qq消息接收人

msg:需要发送的消息

"""

# 将消息写到剪贴板

setText(msg)

# 获取qq窗口句柄

qq = win32gui.FindWindow(None, to_who)

# 投递剪贴板消息到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)

# 测试

to_who='xxx'

msg='这是测试消息'

send_qq(to_who, msg)

特别说明:to_who中填写的是聊天窗口的名字,而非QQ号码。(也就是是网名或备注名,具体的也可以在任务管理器中查看)

模拟按键

python可以通过win32和windows做各种交互,网上还有一篇文章是批量操作文件的例子,其原理和按键精灵差不多。只是好多参数不懂。就好比上面的发送qq消息的例子,本来想改改其中的方法,跳过剪贴板这一步,可是怎么改都不行,以后再试试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。