pyhook
Windows XP マシンでキーストロークをマップするためにandを使用pyhk
していますが、アプリケーションにキーストローク (ctrl+z など) が既に存在する場合を除いて、正常に動作します。その場合、ctrl+z がアプリケーションに渡され、それにマップされているアクションがトリガーされます。
に精通している場合は、必要に応じて基になるアプリケーションに渡すことができるホットキーを定義することで、これを回避できることautohotkey
に注意してください。autohotkey
これは、アイデアを得るためのコードの一部です。Ctrlキーが押されたときを追跡しようとしていることに注意してください。
import pythoncom, pyHook
control_down = False
def OnKeyboardEvent_up(event):
global control_down
if event.Key=='Lcontrol' or event.Key=='Rcontrol':
control_down=False
return True
def OnKeyboardEvent(event,action=None,key='Z',context=None):
global control_down
if event.Key=='Lcontrol' or event.Key=='Rcontrol':
control_down=True
if control_down and event.Key==key:
print 'do something'
return False
if event.Key=='Pause':
win32gui.PostQuitMessage(1)
return False
# return True to pass the event to other handlers
return True
if __name__ == '__main__':
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.KeyUp = OnKeyboardEvent_up
hm.HookKeyboard() # set the hook
pythoncom.PumpMessages() # wait forever
どんな助けでも感謝します。
ありがとう!