Développement, photos, linux, android et autres…
[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
| Print article | This entry was posted by DArt on 9 March 2010 at 16 h 12 min, and is filed under pyqt, python. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
about 5 months ago
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