Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème SetForegroundWindow

1 réponse
Avatar
Ibal Khan
Bonjour,

Voil=E0 mon probl=E8me. J'aimerais pouvoir interagir avec un programme via
l'API de windows. Pour l'instant j'arrive =E0:
- interagir avec Winamp et en simulant des raccourcis clavier avec le
code suivant :
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char * argv[])
{
HWND hWin;
if(hWin =3D FindWindow("Winamp v1.x",NULL))
{
SetForegroundWindow(hWin);

keybd_event(VK_MENU,0,0,0);
keybd_event(VK_F4,0,0,0);
keybd_event(VK_F4,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
}
else
cout << "Impossible de trouver hWin" << endl;

return EXIT_SUCCESS;
}


qui permet de fermer la fen=EAtre.
Je peux aussi dire de faire lire/pause en rempla=E7ant les keybd_event
par:

PostMessage(hWin,WM_KEYDOWN,'X',0);
PostMessage(hWin,WM_KEYUP,'X',0);
Sleep(2000);
PostMessage(hWin,WM_KEYDOWN,'C',0);
PostMessage(hWin,WM_KEYUP,'C',0);


ce qui me permet d'=E9couter pendant deux secondes la musique puis =E7a la
met en pause.

Par contre, le SetForegroundWindow ne me met pas Winamp en premier
plan.
Si j'essaie de faire le m=EAme raccourci "alt+f4" sur chrome par exemple
(dont le nom de classe correspondant est "Chrome_WidgetWin_0") =E7a ne
marche pas, de m=EAme que SetForegroundWindow.

Quelqu'un aurait-il une id=E9e?

merci d'avance!

PS: j'utilise windows 7 64 bit. Mon probl=E8me viendrait-il de l=E0?

1 réponse

Avatar
Christian ASTOR
Ibal Khan a écrit :

Par contre, le SetForegroundWindow ne me met pas Winamp en premier
plan.




ça marche chez moi avec SwitchToThisWindow()

Mais pas la même config : XP SP3
et Winamp v.5.5.7.2928 (classe "BaseWindow_RootWnd");