Dans mon programme j'ai besoin d'envoyer des saisies claviers&souris virtuelles à notepad.

Dans une premier approche cela fonctionne, mais que lorsque je ramène notepad au premier plan. Voici le morceau code de mon application concernée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
        HWND idWindow = FindWindow("notepad","test1.txt - Bloc-notes"); //récupère le handle de la fenêtre concernée
	if( idWindow != NULL) //si elle existe
	{
		cout<< "Fenetre trouvée" <<endl;
		SwitchToThisWindow(idWindow,0); //la rend active
		SendInput(1, &npt, sizeof(INPUT)); //envoie la touche souhaitée
        }
Donc j'aimerai éviter de devoir toujours remettre le notepad en premier plan, et de pouvoir continuer à lui envoyer des instructions en le laissant en arrière plan et même lorsqu'il est réduit si possible

Alors j'ai essayé un SetFocus(idWindow) au lieu de SwitchToThisWindow(idWindow,0); mais sans succès rien ne se passe.

J'ai pensée à relever le handle de la fenêtre courante (avec GetForegroundWindow) pour lui redonner la main ensuite, mais les animations fenêtre n'étant pas instantané c'est pas très fonctionnel surtout quand plusieurs envoie à intervalle régulier sont effectué.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
        HWND idWindow = FindWindow("notepad","test1.txt - Bloc-notes"); //récupère le handle de la fenêtre concernée
	if( idWindow != NULL) //si elle existe
	{
                
		cout<< "Fenetre trouvée" <<endl;
                HWND currentWindow = GetForegroundWindow(); //sauvegarde de l'application courante
		SwitchToThisWindow(idWindow,0); //rend actif notepad
		SendInput(1, &npt, sizeof(INPUT)); //envoie la touche souhaité

                SwitchToThisWindow(currentWindow ,0); //rend la main à l'application courante
        }
Est - ce que quelqu'un aurait une solution qui permettrait d'envoyer évènements claviers à une application sans pour autant devoir la ramener au premier plan.