问题描述
我想自动化几个任务(例如,模拟 Eclipse 风格的 -- 打开其他编辑器的对话框).一般模式是:用户按下某个组合键,我的程序会检测到它并可能弹出一个对话框来获取用户输入,然后运行相应的命令,通常是通过运行可执行文件.
I want to automate several tasks (eg. simulate eclipse style -- open dialog for other editors). The general pattern is: the user will press some key combination, my program will detect it and potentially pop up a dialog to get user input, and then run a corresponding command, typically by running an executable.
我的目标环境是 windows,虽然跨平台会很好.我的程序将启动一次,读取配置文件,然后在后台等待,直到被组合键或其他事件触发.
My target environment is windows, although cross-platform would be nice. My program would be started once, read a configuration file, and sit in the background till triggered by a key combination or other event.
基本上是自动热键.
为什么不直接使用自动热键?我实际上有很多 autohotkey 宏,但我更喜欢使用更理智的语言.
Why not just use autohotkey? I actually have quite a few autohotkey macros, but I'd prefer to use a saner language.
我的问题是:有没有好的方法让后台 python 进程检测组合键?
My question is: is there a good way to have a background python process detect key combinations?
更新:使用 pyHook 和 win32 扩展找到答案:
Update: found the answer using pyHook and the win32 extensions:
import pyHook
import pythoncom
def OnKeyboardEvent(event):
print event.Ascii
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
while True:
pythoncom.PumpMessages()
推荐答案
使用 pyHook 和 win32 扩展找到答案:
Found the answer using pyHook and the win32 extensions:
import pyHook
import pythoncom
def OnKeyboardEvent(event):
print event.Ascii
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
while True:
pythoncom.PumpMessages()
这篇关于用于 Autohotkey 风格的组合键嗅探、自动化的 Python?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!