国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python捕捉和模擬鼠標事件的方法

2020-01-04 18:07:23
字體:
供稿:網(wǎng)友

這篇文章主要介紹了Python捕捉和模擬鼠標事件的方法,涉及PyHook和PyWin32模塊的使用技巧,需要的朋友可以參考下

本文實例講述了Python捕捉和模擬鼠標事件的方法。分享給大家供大家參考。具體分析如下:

這個假期玩了不少galgame,不過有些很老的游戲沒有自動運行模式,點擊鼠標又太傷按鍵了,于是想把滾動鼠標滾輪映射為點擊鼠標。

網(wǎng)上搜了一下,沒發(fā)現(xiàn)什么現(xiàn)成的軟件,而按鍵精靈又太重量級了,于是考慮干脆自己用Python寫個算了。

這里需要把PyHook和PyWin32都裝上(建議下exe版,免得安裝時各種蛋疼)。

翻了翻教程,發(fā)現(xiàn)實現(xiàn)起來很簡單:

 

 
  1. # -*- coding: utf-8 -*-  
  2. import pythoncom, pyHook  
  3. def OnMouseEvent(event):  
  4. print 'MessageName:',event.MessageName  
  5. print 'Message:',event.Message  
  6. print 'Time:',event.Time  
  7. print 'Window:',event.Window  
  8. print 'WindowName:',event.WindowName  
  9. print 'Position:',event.Position  
  10. print 'Wheel:',event.Wheel  
  11. print 'Injected:',event.Injected  
  12. print '---' 
  13. # 返回 True 可將事件傳給其它處理程序,否則停止傳播事件  
  14. return True 
  15. # 創(chuàng)建鉤子管理對象  
  16. hm = pyHook.HookManager()  
  17. # 監(jiān)聽所有鼠標事件  
  18. hm.MouseAll = OnMouseEvent # 等效于hm.SubscribeMouseAll(OnMouseEvent)  
  19. # 開始監(jiān)聽鼠標事件  
  20. hm.HookMouse()  
  21. # 一直監(jiān)聽,直到手動退出程序  
  22. pythoncom.PumpMessages() 

這個例子程序捕捉了所有的鼠標事件,實際上我只需要捕捉向下滾動滾輪的事件即可。翻了下文檔,對應的是MouseWheel,之后只要判斷event.Wheel是否為-1即可。

最后就是觸發(fā)鼠標點擊了,這就需要用到win32api.mouse_event()了,發(fā)送一個按下鼠標左鍵的事件,再發(fā)送彈起的事件,就完成一次單擊了。

最終代碼如下:

 

 
  1. # -*- coding: utf-8 -*-  
  2. import pythoncom  
  3. import pyHook  
  4. import time  
  5. import win32api  
  6. import win32con  
  7. def onMouseWheel(event):  
  8. if event.Wheel == -1:  
  9. win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 00)  
  10. time.sleep(0.05)  
  11. win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 00)  
  12. return True 
  13. hm = pyHook.HookManager()  
  14. hm.MouseWheel = onMouseWheel  
  15. hm.HookMouse()  
  16. pythoncom.PumpMessages()  

希望本文所述對大家的Python程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 县级市| 江油市| 阜阳市| 固始县| 外汇| 大冶市| 西和县| 彝良县| 南木林县| 本溪市| 东乌| 郯城县| 大兴区| 张家界市| 固安县| 佳木斯市| 八宿县| 观塘区| 砀山县| 公主岭市| 钟山县| 喜德县| 定陶县| 当涂县| 本溪市| 师宗县| 鹤庆县| 商水县| 塘沽区| 绥阳县| 高安市| 富裕县| 麟游县| 蛟河市| 柞水县| 蛟河市| 元江| 五家渠市| 浦城县| 南昌市| 玉田县|