2008-11-16 42 views
10

我想要自动进​​行一些任务(例如模拟月食样式CTRL - 转变 - [R其他编辑打开的对话框)。一般模式是:用户将按下一些组合键,我的程序会检测到它,并可能弹出一个对话框以获取用户输入,然后运行相应的命令,通常通过运行可执行文件。用于Autohotkey风格的键组合嗅探,自动化的Python?

我的目标环境是windows,虽然跨平台会很好。我的程序将启动一次,读取一个配置文件,并坐在后台直到触发组合键或其他事件。

基本上是autohotkey。

为什么不只是使用autohotkey?我其实有不少autohotkey宏,但我更喜欢使用一种更清晰的语言。

我的问题是:有一个很好的方法来有一个后台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() 

回答

5

发现使用pyHook和Win32扩展了答案:

import pyHook 
import pythoncom 

def OnKeyboardEvent(event): 
    print event.Ascii 

hm = pyHook.HookManager() 
hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 

while True: 
    pythoncom.PumpMessages() 
7

你可能想看看AutoIt。它完成了AutoHotKey可以完成的所有工作,但是语言语法并不会让你脱颖而出。另外,它还有COM绑定,所以如果你愿意,你可以在python中轻松使用它的大部分功能。我已经发布了关于如何在这里做before