[Python] Récupérer les évènements souris sans prendre le focus
Dans le cadre de LoPlug, j’ai besoin de récupérer les évènements souris sur un second écran tout en continuant à jouer sur LockOn sur le premier. Sans rien, lors du clic sur le second écran, le focus est donné à LoPlug et LockOn se réduit dans la barre des tâches, c’est un peu embêtant…
L’astuce consiste à utiliser PyHook et de court-circuiter la pile d’évènements windows en s’insérant dedans. On récupère alors les informations, mais on empêche le changement de focus. Ensuite, il suffit de réinjecter l’évènement souris dans PyQt (voic ici ) et le tour est joué! On peut désormais cliquer sur les instruments ou les widgets de LoPlug tout en jouant.
bien sur, cette astuce doit fonctionner pour d’autres cas.
De plus, PyHook, permet de gérer des raccourcis claviers et d’intercepter les appuis touches du clavier mais aussi des joysticks, bref il est très utilisé pour LoPlug.
L’implémentation dans LoPlug est dispo ici: http://lotatc.dartsite.org/browser/trunk/loplug/plugins/input/pginput.py
merci pour l’astuce, je vais l’essayer pour une future version de mon déport (et quand FC2 sera sorti
,
pour l’instant pas de pb je suis sur un deuxième PC, quand je mettrais le tout sur le même PC, cela me sera utile
@+
http://theblogyoann.blogspot.com/search/label/COCKPIT