Python检测发送到另一个应用程序的击键

时间:2010-01-20 01:06:12

标签: python sendkeys

我有一个Python程序,使用SendKeys将键击发送到另一个应用程序。但是,某些击键必须在进行一些处理(这需要一段未知的时间)后发送到应用程序。到目前为止,我不得不让Python应用程序知道处理是通过Alt + Tabbing完成回到DOS窗口并按Enter键完成的。我想要一个键组合(Shift + F1或类似的东西),我可以在接收应用程序中点击,表示Python程序继续,而我不必切换回DOS窗口。我怎么能这样做,所以我可以检测Python中的击键,即使焦点在另一个窗口?

1 个答案:

答案 0 :(得分: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()