我有一个 Python 程序,它使用 SendKeys 将击键发送到另一个应用程序。然而,一些击键必须在应用程序进行一些处理后发送到应用程序(这需要未知的时间)。到目前为止,我不得不让 Python 应用程序知道处理已通过 Alt+Tabbing 返回 DOS 窗口并按 Enter 完成。我想要一个组合键(Shift+F1 或类似的东西),我可以在接收应用程序中点击它,通知 Python 程序继续,而无需切换回 DOS 窗口。即使焦点在另一个窗口上,我如何才能检测到 Python 中的击键?
问问题
1030 次
1 回答
0
看看pyHook。
它允许键盘挂钩:
import pythoncom, pyHook
def OnKeyboardEvent(event):
print 'MessageName:',event.MessageName
print 'Message:',event.Message
print 'Time:',event.Time
print 'Window:',event.Window
print 'WindowName:',event.WindowName
print 'Ascii:', event.Ascii, chr(event.Ascii)
print 'Key:', event.Key
print 'KeyID:', event.KeyID
print 'ScanCode:', event.ScanCode
print 'Extended:', event.Extended
print 'Injected:', event.Injected
print 'Alt', event.Alt
print 'Transition', event.Transition
print '---'
# 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()
于 2010-01-20T01:40:28.400 回答