美文网首页
python发QQ

python发QQ

作者: 风果 | 来源:发表于2018-08-05 12:54 被阅读546次

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

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

    上代码吧。

    # 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口# 之后模拟按键发送enter键发送消息importwin32guiimportwin32conimportwin32clipboardaswdefgetText():"""获取剪贴板文本"""w.OpenClipboard()    d = w.GetClipboardData(win32con.CF_UNICODETEXT)    w.CloseClipboard()returnddefsetText(aString):"""设置剪贴板文本"""w.OpenClipboard()    w.EmptyClipboard()    w.SetClipboardData(win32con.CF_UNICODETEXT, aString)    w.CloseClipboard()defsend_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)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    模拟按键

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

    参考:

    http://blog.csdn.net/dahuae/article/details/43969175

    http://blog.csdn.net/seele52/article/details/17504925

    http://lixxu.iteye.com/blog/417218

    http://www.codeweblog.com/%E7%94%A8pywin32%E5%AE%9E%E7%8E%B0windows%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E5%8F%8A%E9%94%AE%E7%9B%98%E5%8A%A8%E4%BD%9C/

    相关文章

      网友评论

          本文标题:python发QQ

          本文链接:https://www.haomeiwen.com/subject/wilbvftx.html