2017-05-29 31 views
0

我试图让我的程序使用不同的按键来执行两个称为“pauseinit”和“startinit”的函数,即使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”完全不注册APON按下Home键。有关如何解决这个问题的任何想法?谢谢。

回答

0

原来我只是愚蠢的。对于没有像我这样想过的人来说,我只是把第二个'如果'放入'尝试'中。

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

     if event.KeyID == 36: 
      self.startinit() 
    finally: 
     return True 
相关问题