[pygame] pyHooking the Arrow Keys

2012-03-19 Thread Ryan Strunk
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



Re: [pygame] pyHooking the Arrow Keys

2012-03-19 Thread Alec Bennett
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.str...@gmail.com 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