pyHook looks to be the way to go. I just posted a recipe to the ASPN cookbook that is basically the example Brian F. linked to above with a few mods to block the windows key and alt-tab and use the pygame event pump. No matter what you do pyHook won't block the ctrl-alt-del combination which seems like a good thing.
Here's the link to the recipe: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/553270 And the code if that link doesn't work: import pyHook import pygame # create a keyboard hook def OnKeyboardEvent(event): print 'MessageName:',event.MessageName print 'Message:',event.Message print 'Time:',event.Time print 'Window:',event.Window print 'WindowName:',event.WindowName print 'Ascii:', event.Ascii, chr(event.Ascii) print 'Key:', event.Key print 'KeyID:', event.KeyID print 'ScanCode:', event.ScanCode print 'Extended:', event.Extended print 'Injected:', event.Injected print 'Alt', event.Alt print 'Transition', event.Transition print '---' if event.Key.lower() in ['lwin', 'tab', 'lmenu']: return False # block these keys else: # return True to pass the event to other handlers return True # create a hook manager hm = pyHook.HookManager() # watch for all keyboard events hm.KeyDown = OnKeyboardEvent # set the hook hm.HookKeyboard() # initialize pygame and start the game loop pygame.init() while(1): pygame.event.pump() Thanks to everbody for the help! -Brian