3
我使用teamplayer,它可以讓你連接更多的鼠標到你的電腦同時使用。我還使用pyHook捕捉鼠標事件,用下面的代碼:團隊合作伙伴和pyhook奇怪地互動
import pyHook
import pythoncom
def onclick(event):
# called when mouse events are received
print 'MessageName:',event.MessageName
print 'Message:',event.Message
print 'Time:',event.Time
print 'WindowName:',event.WindowName
print 'Position:',event.Position
print '---'
return True
hm = pyHook.HookManager()
hm.MouseLeftDown = onclick
hm.MouseLeftUp = onclick
hm.HookMouse()
pythoncom.PumpMessages()
的代碼工作正常,沒有teamplayer - 它檢測到鼠標按鈕向下和向上準確。如果我在程序運行時啓動teamplayer,那麼它會繼續正常工作,這次可以準確地檢測到來自兩隻老鼠的點擊。
但是,如果我開始 teamplayer開始後的程序,那麼每點擊鼠標變成雙:
MessageName: mouse left down
Message: 513
Time: 7231317
WindowName: None
Position: (673, 367)
---
MessageName: mouse left down
Message: 513
Time: 7231317
WindowName: None
Position: (673, 367)
---
MessageName: mouse left up
Message: 514
Time: 7231379
WindowName: None
Position: (673, 367)
---
MessageName: mouse left up
Message: 514
Time: 7231379
WindowName: None
Position: (673, 367)
這將是美好的 - 我可以檢測點擊相同的時間戳,而忽略第二個。然而,當我點擊了不同的鼠標,花紋奇特:
MessageName: mouse left down
Message: 513
Time: 7305916
WindowName: C:\Python25\python.exe
Position: (569, 306)
---
MessageName: mouse left down
Message: 513
Time: 7305916
WindowName: C:\Python25\python.exe
Position: (722, 365)
---
MessageName: mouse left up
Message: 514
Time: 7309598
WindowName: C:\Python25\python.exe
Position: (722, 365)
---
MessageName: mouse left up
Message: 514
Time: 7309598
WindowName: C:\Python25\python.exe
Position: (722, 365)
也就是說,先放下事件從過去的最多事件使用的座標!問題在於錯誤事件是第一次,使得難以發現正確的事件(我不能只是說「忽略第一個事件」,因爲如果teamplayer關閉或者只有一個鼠標連接,那是唯一的! )
任何想法爲什麼這可能會發生,以及我能做些什麼來獲得正常的鼠標事件?