以前看了网上的小程序,处理完事情后会自动发送qq消息,但一直不明白是在说明原理。 我也在网上找到过python登录qq并发送消息的字符,但是太复杂了。 今天偶然看到了一篇用python调用win32界面发送qq消息的文章。 想着好吧,先记录下来。 日后可以使用这些小工具了吧。
qq消息的发送请求已经在qq中注册,而且qq的窗口是独立的。 目前,新版qq一般将所有聊天窗口放在一起。 因此,设定为分离qq窗口或者分别分离需要发送消息的窗口。
坐代码吧
#原理是将要发送的文本放入剪贴板,然后将剪贴板内容发送到qq窗口
#然后按模拟按钮,按enter键发送信息
导入win32 GUI
import win32con
import win32clipboard as w
def getText () :
获取剪贴板中的文本“”
w.OpenClipboard (
d=w.getclipboarddata (win32 con.cf _ unicode text )。
w.CloseClipboard (
返回d
defsettext(astring ) :
设置“”剪贴板中的文本“”
w.OpenClipboard (
w.EmptyClipboard (
w.setclipboarddata (win32 con.cf _ unicode text,aString ) )。
w.CloseClipboard (
efsend_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消息的例子一样,本来想改变那个方法跳过剪贴板的步骤,但是怎么改变都不行。 我稍后再试试