I know it's a little late, but here's a solution, though it's not a good one. Disclaimer: I wrote this on a Linux box, so I don't know if it will work on windows. (See attached file)
Essentially, you let the OS's Alt-Tab do its thing, then just bring the game back to the forefront. I assume the game is fullscreen to start with, and when the user hits "ALT TAB", the game becomes windowed, then fullscreen again. As for the windows key, I think you'll want to check for K_LSUPER and K_RSUPER, but I'm not sure. (see the key constants here: http://www.pygame.org/docs/ref/key.html) Brad PS: Do all Father/Mother programmers try to write a game for their 1-year-old?
''' This is an example that shows a hack to prevent Alt-Tab switching If we find an Alt-Tab key combination, make the game Windowed, then immediately make it fullscreen again. We'll see a quick "blink" when this happens. Written by Brad Montgomery (bradmontgomery.net) on 2008-03-08. This code is public domain. Have fun and be nice. ''' import sys, pygame from pygame.locals import * resolution = (800,600) keys = [] # list of keys to remember num_keys_to_remember = 3 def input(events): ''' A function to handle keyboard/mouse/device input events. ''' global keys for event in events: if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): sys.exit(0) elif event.type == KEYDOWN: if len(keys) >= num_keys_to_remember: keys = [] keys.append(event.key) # check for Alt-Tab if K_TAB in keys and (K_RALT in keys or K_LALT in keys): print 'Caught ALT-TAB' if pygame.display.get_active: pygame.display.toggle_fullscreen() # sets app to not-fullscreen pygame.display.toggle_fullscreen() # sets fullscreen again keys = [] # since we caught what we were # looking for (ALT-TAB), reset this list. def main(): ''' make the display blink ''' pygame.init() screen = pygame.display.set_mode((800,600), FULLSCREEN) pygame.display.set_caption('test') R = 0 G = 0 B = 0 screen.fill((R,G,B)) while True: input(pygame.event.get()) # handle input events. # change the colors... if R == 255: R = 0 else: R += 1 screen.fill((R,G,B)) pygame.display.flip() ############################################################## if __name__ == "__main__": main()