Bonjour
Je cherche un moyen de mettre une fenêtre au premier plan. J'ai un script qui pilote firefox via des sendkeys (pour ceux qui ont suivi, j'ai abandonné l'idée mozrepl, c'est pas assez stable, 9 fois sur 10, la connexion plante quand j'envoie une commande un peu complexe (genre un)
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part while (condition) { commande(); }
Donc au final, j'ai trouvé une solution pas top, à savoir, je bloque le clavier et la souris, j'envoie un sendkey, j'attends 500ms, je vérifie si la fenêtre a changé de titre ou si ma popup est arrivée, sinon je renvoie le sendkey.... le tout pendant 15 secondes, jusqu'à ce que la commande soit arrivée à destination...
Malheureusement, la fenêtre dans laquelle je dois envoyer les sendkeys n'est pas forcément au premier plan, et si la fenêtre est minimisée, j'envoie mes commandes dans le vide. Je sais mettre la fenêtre au premier plan avec SetForegroundWindow (qui est mieux que BringWindowToTop, parce qu'en plus de la mettre à l'avant plan, il lui donne aussi le focus)
Je peux aussi remonter la fenêtre de la barre des tâches avec un SendMessage
mais la commande SC_MAXIMIZE agrandit la fenêtre (comme le bouton à gauche de la croix), et ce n'est pas le comportement que j'attends. En regardant un peu dans la doc MSDN, j'ai trouvé SC_RESTORE, mais il ne remet pas la fenêtre au premier plan si elle est dans la barre des tâches.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Public Const WM_SYSCOMMAND As Long = &H112& Public Const SC_MAXIMIZE As Long = &HF030& '... Call SendMessage(app_hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0) '...
Comment sortir une fenêtre de la barre des tâches sans l'agrandir ?
Oh et j'ai également tenté ça :
mais la fenêtre ne passe pas non plus au premier plan
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public Declare Function ShowWindow Lib "user32" _ (ByVal lHwnd As Long, _ ByVal lCmdShow As Long) As Boolean Public Const SW_HIDE As Long = 0 Public Const SW_SHOW As Long = 5 Public Const SW_MINIMIZE As Long = 2 Public Const SW_MAXIMIZE As Long = 3 ... Call ShowWindow (app_hWnd, SW_SHOW) ...
Partager