使用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 random
10 
11 def send_click():
12     global down_num,up_num
13     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 ok'
22         
23 def onMouse_leftdown(event):
24     # 監聽鼠標左鍵按下事件
25     global down_num
26     down_num += 1
27     print "left DOWN DOWN"+str(down_num)
28     return True
29     # 返回 True 表示響應此事件,False表示攔截
30 
31 def onMouse_leftup(event):
32     # 監聽鼠標左鍵彈起事件
33     global up_num
34     up_num += 1
35     print "left UP UP UP"+str(up_num)
36     return True
37 
38 def main():
39     hm = pyHook.HookManager()
40 
41     hm.MouseLeftDown = onMouse_leftdown
42     hm.MouseLeftUp = onMouse_leftup
43     
44     hm.HookMouse()
45     
46     # 進入循環,如不手動關閉,程序將一直處於監聽狀態
47     pythoncom.PumpMessages()
48 
49 if __name__ == "__main__":
50     down_num = 0
51     up_num = 0
52     # 新線程執行的代碼:
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()

效果是出來了,然而並沒有什么卵用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM