2010-06-15 3 views
4

J'essaie de créer un raccourci global avec pyhook en python qui est supposé fonctionner uniquement avec la touche alt enfoncée.Aide avec l'erreur pyHook

ici est la source:

import pyHook 
import pythoncom 

hm = pyHook.HookManager() 

def OnKeyboardEvent(event): 
    if event.Alt == 32 and event.KeyID == 49: 
     print 'HERE WILL BE THE CODE' 

hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 
pythoncom.PumpMessages() 

mais quand j'exécute, ne fonctionne qu'avec la deuxième fois sur la seconde touche (numéro 1 = 49) ... et donner cette erreur:

http://img580.imageshack.us/img580/1858/errord.png

Comment puis-je le résoudre? Pour le travail au premier temps pressé.

Répondre

8

Note du tutorial que vous avez besoin d'une valeur de retour à la fin de votre gestionnaire:

def OnKeyboardEvent(event): 
    if event.Alt == 32 and event.KeyID == 49: 
     print 'HERE WILL BE THE CODE' 

    # return True to pass the event to other handlers 
    return True 

Je suis d'accord, il est ambigu des documents si cela est nécessaire, mais vous avez besoin de retourner Vrai ou faux (ou éventuellement n'importe quelle valeur entière), avec n'importe quelle valeur "false" (par exemple 0) bloquant l'événement de telle sorte qu'aucun autre gestionnaire ne l'obtienne. (Cela vous permet d'avaler certaines frappes sous condition, comme dans la section Filtrage des événements du tutoriel.)

(Ce ne fut pas aussi facile à comprendre que cela peut paraître! :-))

+0

merci, a travaillé parfaitement ... =) – Shady