首页 > 代码库 > 使用python监听、模拟鼠标键盘事件

使用python监听、模拟鼠标键盘事件

最近守望职业选手疑似开挂事件挺热闹的,在下小菜一枚,并不能从视频中看出端倪。看了一些关于外挂的讨论,自动点射和压枪只需在鼠标驱动上做些改动即可,自瞄或其他高级功能则需要读内存或修改游戏文件,检测也更容易。

士兵76长按左键扫射4发子弹之后准星就会小范围随机飘,所以想自己实现一个长按左键变自动点射的程序。

仅作测试使用,鄙视一切外挂,玩游戏就好好玩。

选择使用python,用到的库pyHook,pywin32

pyHook的文档:http://pyhook.sourceforge.net/doc_1.5.0/

接下来照着文档写就可以了,代码如下

 1 # coding: utf-8 2  3 import pythoncom 4 import pyHook 5 import win32api 6 import win32con 7 import time 8 import threading 9 import random10 11 def send_click():12     global down_num,up_num13     while(1):14         if down_num!=up_num:        15             win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)16             #连射多少秒,大约0.1秒一发子弹17             time.sleep(random.uniform(0.38,0.42))18             win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)19             #连发之间的停顿时间20             time.sleep(random.uniform(0.25,0.29))21             print click ok22         23 def onm ouse_leftdown(event):24     # 监听鼠标左键按下事件25     global down_num26     down_num += 127     print "left DOWN DOWN"+str(down_num)28     return True29     # 返回 True 表示响应此事件,False表示拦截30 31 def onm ouse_leftup(event):32     # 监听鼠标左键弹起事件33     global up_num34     up_num += 135     print "left UP UP UP"+str(up_num)36     return True37 38 def main():39     hm = pyHook.HookManager()40 41     hm.MouseLeftDown = onm ouse_leftdown42     hm.MouseLeftUp = onm ouse_leftup43     44     hm.HookMouse()45     46     # 进入循环,如不手动关闭,程序将一直处于监听状态47     pythoncom.PumpMessages()48 49 if __name__ == "__main__":50     down_num = 051     up_num = 052     # 新线程执行的代码:53     print(thread %s is running... % threading.current_thread().name)54     t = threading.Thread(target=send_click, name=sendThread)55     t.start()56     #t.join()57     main()

效果是出来了,然而并没有什么卵用。

 

使用python监听、模拟鼠标键盘事件