-
Créer un clavier virtuel
Bonjour,
J'aurai besoin de créer une appli qui fonctionne un peu comme un clavier virtuel (qui fonctionne avec des applications tierces).
Typiquement, avec cette appli, je voudrais pouvoir écrire dans notepad++, pour peu qu'au moment ou je clique sur mes boutons, le focus soit sur notepad++.
Le problème est que je ne sais pas comment, depuis mon programme qt, je peux envoyer un évènement qui soit l'équivalent d'un appui de touche clavier (et il ne faut pas que mon appli aie le focus, vu que ca ne doit pas être lui le destinataire de l'évènement).
D'où ma question, comment, en cliquant sur un bouton, je peux envoyer un évènement clavier à l'appli courante ayant le focus ?
Pour info, l'OS visé est Windows.
Merci d'avance !
-
Bonjour,
Votre OS ciblé étant Windows, je vous redirige non pas vers du code Qt pour la transmission de faux événements clavier mais plutôt vers l'API Windows avec la fonction SendInput. Il y a plusieurs exemples dans les commentaires qui devraient vous aider. Cette fonction, de ce que je comprends, cela n'envoie le faux événement que vers la fenêtre active, par exemple votre Notepad++. Ainsi, il faut que votre fenêtre Qt ne soit jamais la fenêtre active, mais qu'elle se situe au premier plan. Cet exemple de la doc semble adapté à la situation : http://qt-project.org/doc/qt-4.8/tools-inputpanel.html. Il utilise Qt::Tool | Qt::WindowStaysOnTopHint comme flags pour que la fenêtre des chiffres ne soit jamais la fenêtre active, ce qui devrait en théorie fonctionner (je me trompe peut-être, après, cela fait un bon bout de temps que je n'ai pas joué avec les flags).
Bonne soirée,
Louis
-
Ça m'a l'air d'être tout à fait ce que je recherche.
Je m'en vais tester tout de suite, merci beaucoup ^^.