pyHook + pyGTK - 关键按下应用程序(Windows)

时间:2015-12-18 11:23:27

标签: python windows keyboard pyhook

我希望我的(Python / Windows)GUI GTK窗口在按键时关闭。但是,没有反应。 我是初学者,我正在寻找谷歌的答案。 我的英语也不是非常专业。 请耐心等待。

import pygtk
import gtk
import pyHook

class Program:
    def QuitOnKeyPress(self):
        if pyHook.GetKeyState(81) == '1':
           gtk.main_quit()

def __init__(self):
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_position(gtk.WIN_POS_CENTER)
    self.window.set_size_request(300, 300)
    self.window.show()

def main(self):
    gtk.main()


if __name__ == "__main__":
    prog = Program()
    prog.main()

while 1:
    prog.QuitOnKeyPress() #Tried without () too
你能告诉我我做错了什么吗? 我也尝试使用win32api和pyGame。 但是win32api [from here]还没有安装,只有win32com。 PyGame也有问题 - 没有安装键盘事件/模块。

1 个答案:

答案 0 :(得分:0)

查看the pyHook tutorial.您的while循环方法检查按键是否按下状态仍然无法正常工作。相反它应该是这样的:

def OnKeyboardEvent(event):
    if event.KeyID == 81:
        gtk.main_quit()

# return True to pass the event to other handlers
    return True

# create a hook manager
hm = pyHook.HookManager()
# watch for all mouse events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()