Python捕捉和模擬鼠標(biāo)事件的方法
本文實(shí)例講述了Python捕捉和模擬鼠標(biāo)事件的方法。分享給大家供大家參考。具體分析如下:
這個(gè)假期玩了不少galgame,不過(guò)有些很老的游戲沒有自動(dòng)運(yùn)行模式,點(diǎn)擊鼠標(biāo)又太傷按鍵了,于是想把滾動(dòng)鼠標(biāo)滾輪映射為點(diǎn)擊鼠標(biāo)。
網(wǎng)上搜了一下,沒發(fā)現(xiàn)什么現(xiàn)成的軟件,而按鍵精靈又太重量級(jí)了,于是考慮干脆自己用Python寫個(gè)算了。
這里需要把PyHook和PyWin32都裝上(建議下exe版,免得安裝時(shí)各種報(bào)錯(cuò))。
翻了翻教程,發(fā)現(xiàn)實(shí)現(xiàn)起來(lái)很簡(jiǎn)單:
# -*- coding: utf-8 -*- import pythoncom, pyHook def OnMouseEvent(event): print 'MessageName:',event.MessageName print 'Message:',event.Message print 'Time:',event.Time print 'Window:',event.Window print 'WindowName:',event.WindowName print 'Position:',event.Position print 'Wheel:',event.Wheel print 'Injected:',event.Injected print '---' # 返回 True 可將事件傳給其它處理程序,否則停止傳播事件 return True # 創(chuàng)建鉤子管理對(duì)象 hm = pyHook.HookManager() # 監(jiān)聽所有鼠標(biāo)事件 hm.MouseAll = OnMouseEvent # 等效于hm.SubscribeMouseAll(OnMouseEvent) # 開始監(jiān)聽鼠標(biāo)事件 hm.HookMouse() # 一直監(jiān)聽,直到手動(dòng)退出程序 pythoncom.PumpMessages()
這個(gè)例子程序捕捉了所有的鼠標(biāo)事件,實(shí)際上我只需要捕捉向下滾動(dòng)滾輪的事件即可。翻了下文檔,對(duì)應(yīng)的是MouseWheel,之后只要判斷event.Wheel是否為-1即可。
最后就是觸發(fā)鼠標(biāo)點(diǎn)擊了,這就需要用到win32api.mouse_event()了,發(fā)送一個(gè)按下鼠標(biāo)左鍵的事件,再發(fā)送彈起的事件,就完成一次單擊了。
最終代碼如下:
# -*- coding: utf-8 -*- import pythoncom import pyHook import time import win32api import win32con def onMouseWheel(event): if event.Wheel == -1: win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0) time.sleep(0.05) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0) return True hm = pyHook.HookManager() hm.MouseWheel = onMouseWheel hm.HookMouse() pythoncom.PumpMessages()
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸入的操作
- python PyAutoGUI 模擬鼠標(biāo)鍵盤操作和截屏功能
- Python模擬鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)方法(將通過(guò)實(shí)例自動(dòng)化模擬在360瀏覽器中自動(dòng)搜索python)
- 利用Python實(shí)現(xiàn)Windows下的鼠標(biāo)鍵盤模擬的實(shí)例代碼
- Python實(shí)現(xiàn)windows下模擬按鍵和鼠標(biāo)點(diǎn)擊的方法
- python模擬鼠標(biāo)拖動(dòng)操作的方法
- windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例
- python之模擬鼠標(biāo)鍵盤動(dòng)作具體實(shí)現(xiàn)
- 如何使用python實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊
相關(guān)文章
使用TFRecord存取多個(gè)數(shù)據(jù)案例
今天小編就為大家分享一篇使用TFRecord存取多個(gè)數(shù)據(jù)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python統(tǒng)計(jì)詞頻并繪制圖片(附完整代碼)
這篇文章主要介紹了Python統(tǒng)計(jì)詞頻并繪制圖片(附完整代碼)本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08關(guān)于Pyinstaller打包eel和pygame需要注意的坑
這篇文章主要介紹了關(guān)于Pyinstaller打包eel和pygame需要注意的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02python簡(jiǎn)單實(shí)現(xiàn)矩陣的乘,加,轉(zhuǎn)置和逆運(yùn)算示例
這篇文章主要介紹了python簡(jiǎn)單實(shí)現(xiàn)矩陣的乘,加,轉(zhuǎn)置和逆運(yùn)算,結(jié)合實(shí)例形式分析了Python針對(duì)矩陣的乘,加,轉(zhuǎn)置和求逆等運(yùn)算相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01?分享4款Python 自動(dòng)數(shù)據(jù)分析神器
這篇文章主要給大家分享的是4款Python 自動(dòng)數(shù)據(jù)分析神器,我給大家分享 4 款常用的EDA工具,它們可以自動(dòng)產(chǎn)出統(tǒng)計(jì)數(shù)據(jù)和圖表,為我們節(jié)省大量時(shí)間,需要的朋友可以參考一下2022-03-03