質問

pyhookpyhkを使用してWindows XPマシンでキーストロークをマッピングしています。キーストローク(SATH、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
.

あらゆる助けがあります。

ありがとう!

役に立ちましたか?

解決

あなたがWindowsのみで絶え間なく、win apiを使うことができます。CTYPES経由:

>>> from ctypes import windll
>>> windll.user32.RegisterHotKey(0, -1, 0x0002, 0x5a)
.

これらのコードを実行した後 ctrl (code= 0x0002) + z (code= 0x5a)Python Replには、もっと機能しない。

だからあなたはwindowsが登録されているのかを調べるべきです。追加情報MSDNで見つけることができる:http://msdn.microsoft.com/en-us/library/windows/desktop/ms646309(v=vs.85).aspx

他のヒント

ここでは完全に間違っているかもしれませんが、Pyhookのマニュアルを理解することができます。。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top