2008-11-16 50 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