[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] pyHooking the Arrow Keys



The solution was right there as a comment in your code: you need to add "return True" if you want to pass the keypress along. Conversely, "return False" will block it.

Something like:

def OnKeyboardEvent(event):
     print event.ScanCode, event.Key
     return True





On Mon, Mar 19, 2012 at 6:32 PM, Ryan Strunk <ryan.strunk@xxxxxxxxx> wrote:
Hi everyone,
I wrote a little while back about how I wanted to tie the arrow keys
specifically to my program so that they could be used exclusively for the
program instead of being intercepted by a screen reader. I attempted to
modify the code from the tutorial I found, but it is producing some rather
strange results. In addition to not allowing the arrow keys to work inside
of the program, the program also blocks the arrow keys in other windows. Can
anyone tell me, please, what is going wrong and how I can fix it?
Here is the code I have pasted at the bottom of my main file:
def OnKeyboardEvent(event):
# return True to pass the event to other handlers
 return (event.Key not in ['Up', 'Down', 'Right', 'Left'])

# create a hook manager
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

Thanks for your help.
Best,
Ryan