国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 丰都县| 盘山县| 阳春市| 阜阳市| 新田县| 三明市| 炉霍县| 肇州县| 巴中市| 宁德市| 宁海县| 咸宁市| 上饶县| 金阳县| 精河县| 奎屯市| 华阴市| 阳城县| 芜湖县| 彩票| 田林县| 沂水县| 抚远县| 旬阳县| 海阳市| 海原县| 恩平市| 迭部县| 镶黄旗| 五莲县| 保山市| 连山| 绵阳市| 斗六市| 桓仁| 海南省| 沙田区| 金山区| 荣成市| 东莞市| 陆川县|