如何在Python中使用pyHook将多个键绑定到不同的功能?

How to bind multiple keys to different functions using pyHook in Python?

我正在尝试让我的程序使用不同的按键执行两个名为 "pauseinit" 和 "startinit" 的函数,即使 python GUI 不是焦点,也可以检测到. 我的代码是:

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" 函数工作正常并向控制台打印 "pausing" 但 "startint" 在按下 Home 键时根本没有注册。关于如何解决这个问题的任何想法?谢谢

原来我是个笨蛋。对于那些没有像我一样考虑清楚的人,我只是把第二个 'if' 放到 'try'.

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

        if event.KeyID == 36:
            self.startinit()
    finally:
        return True