Python 检测发送到其他应用的按键

0 投票
1 回答
1055 浏览
提问于 2025-04-15 18:13

我有一个用Python写的程序,它可以向另一个应用程序发送按键。不过,有些按键需要在那个应用程序处理完某些事情后再发送,而这个处理的时间是不确定的。到目前为止,我只能通过切换回命令行窗口(也就是DOS窗口),然后按回车键来告诉Python程序处理已经完成。我希望能有一个按键组合(比如Shift+F1之类的),让我在接收的应用程序中按一下,就能让Python程序继续运行,而不需要切换回命令行窗口。请问我该怎么做,才能在Python中检测按键,即使焦点在另一个窗口上?

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()

撰写回答