Focus application extérieure

Résolu
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 - 4 nov. 2008 à 10:44
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 - 5 nov. 2008 à 15:13
Bonjour,

J'ai développé un petit programme qui détecte des mouvement avec ma webcam.
Dès qu'il y a un mouvement, je déclenche une simulation d'appui sur le clavier par la fonction keybd_event.

Sauf que cette action est liè à l'application qui est active (celle qui à le focus).

J'arrive à récupérer la liste des applications qui sont lancé mais je ne trouve pas d'info pour activer l'application qui m'intéresse.

Comment peut-on donner le focus à l'application de son choix ? Comment connaitre l'application qui a le focus ?
Ainsi, si un mouvement est détecté, je pourrais activer l'application de mon choix puis simuler une touche pour que cette application sache qu'un événement est arrivé.

Merci à tous

Oniria

1 réponse

Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 3
5 nov. 2008 à 15:13
Bonjour,

J'ai trouvé après de très longues heures d'essai infructueux...

Pour ceux que ca interresse, il faut utiliser l'API de window.

On cherche le Handle de la fenêtre de l'application qui nous interresse et on execute

PostMessage(FMain.Handle_Canoe,WM_KEYDOWN,touches[i],FMain.Handle_Canoe);

avec dans mon cas : FMain.Handle_Canoe qui est le Handle de la fenêtre de l'application

WM_KEYDOWN qui est l'appui d'une touche

touches[i] correspond au code de la touche (par exemple VK_0 pour la touche 0)

et ce que je ne savais pas qu'il fallait mettre dans ce qui est appelé lParam, le Handle de la fenêtre de l'application. Ce n'ai pas documenté, j'ai trouvé en créant un espion de message windows.

Ensuite, au bout d'un petit moment, il faut envoyer la commande de relachement :

PostMessage(FMain.Handle_Canoe,WM_KEYUP,touches[i],FMain.Handle_Canoe);

Si ca peut aider d'autres personnes, surtout dans le pilotage d'une application par le clavier ou la souris ...

Oniria
1
Rejoignez-nous