Python для AutoHkey-стиля, анализ комбинации клавиш, автоматизация? - PullRequest
10 голосов
/ 16 ноября 2008

Я хочу автоматизировать несколько задач (например, имитировать стиль затмения ctrl - shift - R открыть диалог для других редакторов). Общая схема такова: пользователь нажимает некоторую комбинацию клавиш, моя программа обнаружит ее и, возможно, откроет диалоговое окно для получения пользовательского ввода, а затем выполнит соответствующую команду, обычно запустив исполняемый файл.

Моя целевая среда - окна, хотя кроссплатформенность была бы хороша. Моя программа будет запущена один раз, прочитает файл конфигурации и будет работать в фоновом режиме, пока не будет вызвана комбинация клавиш или другое событие.

В основном 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()

Ответы [ 2 ]

7 голосов
/ 17 ноября 2008

Вы можете посмотреть на AutoIt . Он делает все, что может делать AutoHotKey, но синтаксис языка не заставляет вас хотеть вырывать голову. Кроме того, он имеет привязки COM, поэтому вы можете легко использовать большинство его возможностей в python, если хотите. Я уже писал о том, как это сделать здесь до .

5 голосов
/ 17 февраля 2009

Нашел ответ, используя pyHook и расширения win32:

import pyHook
import pythoncom

def OnKeyboardEvent(event):
    print event.Ascii

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

while True:
    pythoncom.PumpMessages()
...