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가 시작 후 프로그램을 시작하면
그러나, 다음, 모든 마우스 클릭 두 번이된다 :
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)
는 첫 번째 다운 이벤트는 최대 마지막 이벤트에서 좌표를 사용합니다! 문제는 잘못된 이벤트가 먼저 발생하여 정확한 이벤트를 탐지하기가 더 어렵게됩니다. 팀 플레이가 꺼져 있거나 하나의 마우스 만 연결되어 있다면 그 이벤트가 유일하기 때문에 "첫 번째 이벤트 무시"라고 말할 수 없습니다!)
왜 이런 일이 벌어지는 지에 대한 아이디어와 일반적인 마우스 이벤트를 얻으려면 어떻게해야합니까?