10

我想自动化几个任务(例如,模拟 Eclipse 风格ctrl——为其他编辑shiftR打开对话框)。一般模式是:用户按下某个组合键,我的程序会检测到它并可能会弹出一个对话框以获取用户输入,然后运行相应的命令,通常是通过运行可执行文件。

我的目标环境是 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()
4

2 回答 2

7

你可能想看看AutoIt。它可以做 AutoHotKey 可以做的所有事情,但语言语法不会让你想把头发拉出来。此外,它具有 COM 绑定,因此如果您愿意,您可以在 python 中轻松使用它的大部分功能。我之前已经在此处发布了有关如何操作的信息。

于 2008-11-16T22:05:51.160 回答
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()
于 2009-02-17T16:07:25.310 回答