[python] pygtk, odchytávání událostí klávesnice a myši

Jan Martinek honza na dp.fce.vutbr.cz
Pátek Srpen 18 13:04:19 CEST 2006


Ahoj, nevíte někdo, jak pomocí gtk zachytávat všechny události klávesnice a 
pohyby myší? Když napíšu tohle

#!/usr/bin/env python
import gtk

def wakeup(widget, event):
   print "Event number %d woke me up" % event.type

w = gtk.Window()

w.add_events(gtk.gdk.KEY_PRESS_MASK |
             gtk.gdk.POINTER_MOTION_MASK |
             gtk.gdk.BUTTON_PRESS_MASK |
             gtk.gdk.SCROLL_MASK)

w.connect("motion-notify-event", wakeup)
w.connect("key-press-event", wakeup)
w.connect("button-press-event", wakeup)
w.connect("scroll-event", wakeup)

w.show()

gtk.main()

Tak to na stisky kláves reaguje pouze tehdy, když je okno aplikace aktivní.  
A pohyby myši (a klikání) to zaregistruje jen když se kurzor myši nacházi 
uvnitř okna.
Jak by se to dalo napsat, aby to zachytávalo všechno i když je hlavní okno 
neaktivní/minimalizované/schované? Stačil by mi link na nějakou jednoduchou 
aplikaci, která toto musí umět, například
- blbinky, co měří vzdálenost, kterou urazil kurzor myši
- prográmek, co upozorní uživatele, že už píše příliš dlouho a měl by si 
  odpočinout
- něco, co zjišťuje aktivitu/neaktivitu uživatele (různí IM klienti)
- koulející oči, které se stále otáčejí za kurzorem myši (xeyes)
- keyloggers - zlomyslné programy (jsou-li nějaké), co čenichají všechny 
  stisky kláves (hesla) a schovávají je do souboru.
- ???

Hledám něco, co je napsáno v čistém gtk bez přímého volání xlib.
Díky 


Další informace o konferenci Python