Bonjour,
J'essaye depuis un certain temps d'activer une application Windows (Comme on pourrait le faire en cliquant sur la barre de titre) à partir d'une autre application (Qui éventuellement n'a pas active).
Par exemple je veux activer notepad.
J'exécute donc notepad.
Puis je lance un exécutable qui contient un timer et au bout d'un certain temps il doit activer notepad. Entre le moment où est exécuté l'exécutable qui contient le timer et le déclenchement du timer l'utilisateur peut activer d'autres applications Windows.
J'ai testé plusieurs solutions mais sans succès. Tout au plus notepad arrive au premier plan mais sans avoir le focus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm1.Timer1Timer(Sender: TObject); var h :HWND; begin h:=FindWindow(PChar('Notepad'),Nil); //SetWindowPos(h,HWND_TOPMOST,1,1,1,1,SWP_NOMOVE+SWP_NOSIZE); //SetActiveWindow(h); //BringWindowToTop(h); AppActivate(h); end;
Ce que je souhaite c'est que quelque soit l'application qui a le focus notepad reçoit le focus et devient l'application active.
J'ai essayé SetFocus, BringWindowToTop, SetActiveWindow, SetWindowPos, SendMessage, AppActivate (Unit:sndkey32) et des SendMessage ...
Merci de m'apporter des éclaicissements.
J'imagine que je dois passer à côté de quelque chose d'évident...
Partager