最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python捕捉和模擬鼠標(biāo)事件的方法

 更新時間:2024年07月26日 16:55:50   作者:xm1331305  
這篇文章主要介紹了Python捕捉和模擬鼠標(biāo)事件的方法,涉及PyHook和PyWin32模塊的使用技巧,需要的朋友可以參考下

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

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

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

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

翻了翻教程,發(fā)現(xiàn)實現(xià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)建鉤子管理對象 
hm = pyHook.HookManager() 
# 監(jiān)聽所有鼠標(biāo)事件 
hm.MouseAll = OnMouseEvent # 等效于hm.SubscribeMouseAll(OnMouseEvent) 
# 開始監(jiān)聽鼠標(biāo)事件 
hm.HookMouse() 
# 一直監(jiān)聽,直到手動退出程序 
pythoncom.PumpMessages()

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

最后就是觸發(fā)鼠標(biāo)點擊了,這就需要用到win32api.mouse_event()了,發(fā)送一個按下鼠標(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() 

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

相關(guān)文章

最新評論

桦甸市| 霍林郭勒市| 祁阳县| 和田县| 甘肃省| 开化县| 德州市| 阳东县| 青川县| 黑山县| 娱乐| 宁都县| 政和县| 吴江市| 芜湖市| 邵阳县| 和硕县| 和政县| 卢龙县| 大兴区| 浦县| 盐城市| 延边| 信阳市| 林周县| 义乌市| 昌吉市| 和林格尔县| 大余县| 宁海县| 清丰县| 河间市| 滨海县| 绍兴市| 静安区| 诸城市| 辽源市| 增城市| 岐山县| 唐河县| 澎湖县|