我想自动化几个任务(例如,模拟 Eclipse 风格ctrl——为其他编辑shift器R打开对话框)。一般模式是:用户按下某个组合键,我的程序会检测到它并可能会弹出一个对话框以获取用户输入,然后运行相应的命令,通常是通过运行可执行文件。
我的目标环境是 windows,虽然跨平台会很好。我的程序将启动一次,读取配置文件,然后坐在后台直到被组合键或其他事件触发。
基本上是自动热键。
为什么不只使用自动热键?我实际上有很多自动热键宏,但我更喜欢使用更理智的语言。
我的问题是:有没有一种让后台python进程检测组合键的好方法?
更新:使用 pyHook 和 win32 扩展找到了答案:
import pyHook
import pythoncom
def OnKeyboardEvent(event):
print event.Ascii
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
while True:
pythoncom.PumpMessages()