2017-05-29 5 views
0

私は、 "pauseinit"と "startinit"という2つの機能を実行するために、python GUIに焦点が当てられていなくても検出できるさまざまなキーを使用しています。 私のコードを読み取りますPythonでpyHookを使用して複数のキーを異なる関数にバインドする方法は?

class Keystroke_Watcher(object): 
    def __init__(self): 
     self.hm = HookManager() 
     self.hm.KeyDown = self.on_keyboard_event 
     self.hm.HookKeyboard() 


    def on_keyboard_event(self, event): 
     try: 
      if event.KeyID == 35: #End key 
       self.pauseinit() 
     finally: 
      return True 
     try: 
      if event.KeyID == 36: #Home key 
       self.startinit() 
     finally: 
      return True 

     def pauseinit(self): 
      print "pausing" 

     def startinit(self): 
      print "starting" 

     def shutdown(self): 
      PostQuitMessage(0) 
      self.hm.UnhookKeyboard() 

watcher = Keystroke_Watcher() 
PumpMessages() 

「pauseinit」機能が正常に動作してプリントがコンソールに「一時停止」ではなく「startint」Homeキーを押すAPON全く登録されません。どのようにこれを解決するための任意のアイデアですか?ありがとう。

答えて

0

私はちょうどばかだ。私のようにそれを考えなかった人のために、私はちょうど2回目の 'if'を 'try'に入れます。

def on_keyboard_event(self, event): 
    try: 
     if event.KeyID == 35: 
      self.pauseinit() 

     if event.KeyID == 36: 
      self.startinit() 
    finally: 
     return True 
関連する問題