【Python】pywin32实用小记|pywin32操作QQ聊天窗口爆破PS学姐

开局一张图:被这些PS学姐搞烦了,一直想着那天要是他们再来就。。。今天这个想法成真了。
在这里插入图片描述

效果图: 代码在最下面,当然啦这样做其实是不好的,我也就是图一乐,但是哪怕是真的不在乎也要小心被封号。对于这种嘛真的有心情还是不要爆破,搞个自动回复,当一个礼貌的复读机就行了。
在这里插入图片描述


爆破代码传送门


while True:
    #打开剪贴板
    w.OpenClipboard()
    #清空剪贴板
    w.EmptyClipboard()
    #设置剪贴板内容
    w.SetClipboardData(win32con.CF_UNICODETEXT, "aaa")
    #获取剪贴板内容
    date = w.GetClipboardData()
    #关闭剪贴板
    w.CloseClipboard()
    print(date)

w.SetClipboardData(win32con.CF_UNICODETEXT, “aaa”)每次都相当于执行了Ctrl+C
当然Win10系统对重复的复制有一个处理机制,就是如下图,第一条是“aaa”,你们无论多少次复制,队列都不会增长。
在这里插入图片描述


# 打开剪贴板
w.OpenClipboard()
# 清空剪贴板
w.EmptyClipboard()
# # 设置剪贴板内容
w.SetClipboardData(win32con.CF_UNICODETEXT, "bbb")
while True:
    # 获取剪贴板内容
    data = w.GetClipboardData()
    print(data)
    time.sleep(1.5)  # 延缓进程

运行后不管什么时候你用Ctrl+C复制了一下,虽然系统的剪贴板已经改变(如下图),但是程序中的得到的剪贴板的内容任然是之前设置的,似乎这两个剪贴板不完全关联在一起。
在这里插入图片描述


import win32clipboard as w
# 关闭剪贴板
    w.CloseClipboard()
    关闭以后就不能操作例如:
    print(w.GetClipboardData())  #(1418, 'GetClipboardData', '线程没有打开的剪贴板。')
    但是任然可以这样
# 把剪切板内容粘贴到qq窗口
    win32gui.SendMessage(QMagHandle, win32con.WM_PASTE, 0, 0)
    

剪贴板关闭以后。。。


在这里插入图片描述
这个红色的可以不用管,可能是内部实现方式比较特殊,所以PyCahrm认为不存在这个模块,但是是可以正常使用的,我就不知道一直去查为什么


爆破代码

pip install pywin32 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
import win32gui
import win32con
import win32clipboard as w
import time

def 爆破PS学姐(QMagHandle):
    # 把剪切板内容粘贴到qq窗口
    win32gui.SendMessage(QMagHandle, win32con.WM_PASTE, 0, 0)
    # 按下后松开回车键,发送消息
    win32gui.SendMessage(QMagHandle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    win32gui.SendMessage(QMagHandle, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

def InitMsg(msg):
    # 打开剪贴板
    w.OpenClipboard()
    # 清空剪贴板
    w.EmptyClipboard()
    # 设置剪贴板内容
    w.SetClipboardData(win32con.CF_UNICODETEXT, msg)
    # 关闭剪贴板
    w.CloseClipboard()

#返回值为对应QQ消息窗口的handle,参数为QQ消息窗口的名字
def 初始化QQ窗口(QWinName):
    # 获取qq窗口句柄,腾讯聊天窗口类名'TXGuiFoundation',不过没有重名的可以不写
    QMagHandle = win32gui.FindWindow(None, name)
    if QMagHandle == 0:
        raise Exception('未找到窗口!')
    else:
        # 显示窗口
        win32gui.ShowWindow(QMagHandle, win32con.SW_SHOW)
        return QMagHandle

if __name__ == '__main__':
    name = ''  # QQ聊天窗口的名字
    msg = ""
    f = 1  #发消息的频率,默认1 sec

    InitMsg(msg)
    try:
        QMagHandle = 初始化QQ窗口(name)
        while True:
            爆破PS学姐(QMagHandle)
            time.sleep(f)  # 延缓进程
    except Exception as e:
        print(e)

附赠一些找到的有用的资料:
如果你想不用剪贴板直接通过win32gui.SendMessage()发送消息,参考:windows下用python3通过win32api往记事本里写入字符串windows下用python3通过win32api往记事本里写入字符串

Python笔记之通过PyWin32模块实现在QQ聊天窗口自动发送消息
Win32消息处理API—PostMessage

  • 25
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值