2008-11-16 16 views
10

quiero para automatizar varias tareas (por ejemplo, simular estilo Eclipse ctrl -. cambio - R de diálogo abierto para otros editores). El patrón general es: el usuario presionará alguna combinación de teclas, mi programa lo detectará y potencialmente mostrará un cuadro de diálogo para obtener la entrada del usuario, y luego ejecutará un comando correspondiente, generalmente ejecutando un archivo ejecutable.Python para olfatear combinación de teclas estilo Autohotkey, ¿automatización?

Mi entorno objetivo son las ventanas, aunque multiplataforma sería agradable. Mi programa se iniciará una vez, leerá un archivo de configuración y se sentará en segundo plano hasta que se active mediante una combinación de teclas u otro evento.

Básicamente autohotkey.

¿Por qué no usar solo autohotkey? De hecho, tengo bastantes macros autohotkey, pero preferiría usar un lenguaje más seguro.

Mi pregunta es: ¿hay una buena manera de tener un proceso de fondo python para detectar combinaciones de teclas?

Actualización: conocer la respuesta usando pyHook y las extensiones de Win32:

import pyHook 
import pythoncom 

def OnKeyboardEvent(event): 
    print event.Ascii 

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

while True: 
    pythoncom.PumpMessages() 

Respuesta

5

encontrado la respuesta usando pyHook y las extensiones de Win32:

import pyHook 
import pythoncom 

def OnKeyboardEvent(event): 
    print event.Ascii 

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

while True: 
    pythoncom.PumpMessages() 
7

Es posible que desee ver en AutoIt. Hace todo lo que AutoHotKey puede hacer, pero la sintaxis del lenguaje no hace que quieras arrancarte los pelos. Además, tiene enlaces COM para que puedas usar la mayoría de sus habilidades fácilmente en Python si así lo deseas. He publicado acerca de cómo hacerlo aquí before.

Cuestiones relacionadas