Как гласит заголовок, я пытаюсь перехватить события мыши и клавиатуры с помощью Python-gtk.
Я легко могу сделать это с помощью python-xlib:
self.display = display.Display()
self.screen = self.display.screen()
self.root_window = self.screen.root
self.root_window.grab_pointer(1,
X.ButtonPressMask | X.ButtonReleaseMask | X.Button1MotionMask,
X.GrabModeAsync,
X.GrabModeAsync,
X.NONE, X.NONE,
X.CurrentTime)
self.root_window.grab_keyboard(1,
X.GrabModeAsync,
X.GrabModeAsync,
X.CurrentTime)
Я вижу аналог с использованием функций gtk.gdk. *, Но мне просто не удается зафиксировать события в главном окне рабочего стола. Можно ли это сделать?
Вот как я пытался выполнить задачу ... (ALL_EVENTS_MASK был актом отчаяния;])
self.root_window = gtk.gdk.get_default_root_window()
self.root_window.set_events(gtk.gdk.ALL_EVENTS_MASK)
gtk.gdk.event_handler_set(self.filter_callback)
gtk.main()
def filter_callback (self, *args):
print args