import pyatspi savedObjs = [] def printFrame(obj): while obj: obj.ref() # just force it if obj.getRoleName() == "frame": print "frm 0x%x: %s\n" % (id(obj), obj) obj = obj.parent def handleKeystroke(event): if event.event_string == "F12": event.consume = True if event.type == pyatspi.KEY_RELEASED_EVENT: reg.stop() reg = pyatspi.Registry reg.registerKeystrokeListener(handleKeystroke, synchronous=True, preemptive=True, mask=pyatspi.allModifiers()) def onFocus(event): print dir(event.source) print "obj 0x%x: %s" % (id(event.source), event.source) printFrame(event.source) reg.registerEventListener(onFocus, 'focus') reg.start() print "Goodbye"