Page 1 sur 1

[R] Raccourci mini/maximiser Firefox

Posté : lun. 27 juin 2016 09:13
par AdrienMar
Bonjour à tous !

Je sollicite votre aide précieuse car je bloque sur certaines notions que je ne maitrise pas...

L'idée est de faire un script qui "attend" l'appui sur une touche définie (la touche de raccourci que j'utilise) avec HotKeySet je crois,
puis, lors de l'appui sur cette touche, si Firefox est ouvert mais minimisé, le script le maximise et inversement, pour réduire et agrandir Firefox rapidement... Et si Firefox n'est pas ouvert, le script le lance...

Pour l'instant j'utilise Clavier+ (lors de l'appui sur la touche de raccourci, Clavier+ déplace ma souris sur l'icone Firefox dans la barre des tâches et clique dessus. Cette solution me convient moyennement car
- la souris se retrouve ds la barre des taches à chaque fois
- L'icone de Firefox change d'emplacement assez régulièrement, au gré des autres programmes ouverts avant lui... (donc parfois ça ouvre un autre programme à la place de mon navigateur)

Je me suis renseigné à propos de WinSetState, j'ai réussi à le faire marcher pour minimiser ou maximiser Firefox, mais uniquement en mettant le titre complet ( par exemple WinSetState("Portail Free - Mozilla Firefox","",@SW_MINIMIZE)
Mais je n'ai pas réussi à comprendre les hwnd et autres "string", ni comment les obtenir, ni comment les utiliser :lol:

Et pour finir, pour lancer Firefox, j'utilise ShellExecute("firefox.exe")

Merci beaucoup de m'aider, pour l'instant je vois pas trop comment meubler le script...

Bonne journée,
Adrien

Re: [..] Raccourci mini/maximiser Firefox  

Posté : lun. 27 juin 2016 14:29
par orax
Au lieu de Run(), on pourrait aussi utiliser ShellExecute() comme tu l'avais fait.
Je récupère le handle de la fenêtre dans $hWnd. Ensuite, je peux le réutiliser avec les autres fonctions Win* (WinSetState, WinSetState...). C'est plus pratique de faire comme ça.
WinGetHandle("[REGEXPTITLE:.+ - Mozilla Firefox$; CLASS:MozillaWindowClass]") va chercher une fenêtre dont le titre se termine par - Mozilla Firefox, et qui a une classe MozillaWindowClass.
Global Const $WIN_STATE_ACTIVE = 8

HotKeySet("{F4}", "_firefox")

While 1
   Sleep(10000)
WEnd

Func _firefox()
   Local $iState, $hWnd = WinGetHandle("[REGEXPTITLE:.+ - Mozilla Firefox$; CLASS:MozillaWindowClass]")
   If Not @error Then
      $iState = WinGetState($hWnd)
      If BitAND($iState, $WIN_STATE_ACTIVE) Then
         WinSetState($hWnd, "", @SW_MINIMIZE)
      Else
         WinActivate($hWnd)
         WinSetState($hWnd, "", @SW_MAXIMIZE)
      EndIf
   Else
      If Not ProcessExists("firefox.exe") Then Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe", "C:\Program Files (x86)\Mozilla Firefox", @SW_MAXIMIZE)
   EndIf
EndFunc   ;==>_firefox

Re: [R] Raccourci mini/maximiser Firefox

Posté : mar. 28 juin 2016 22:47
par AdrienMar
Bonjour orax !

Merci beaucoup pour ton aide, c'est exactement ce qu'il me fallait...
Du coup, j'ai juste eu à coller un raccourci pour le démarrer en même temps que Windows, c'est impeccable !

Pour le hWnd j'ai toujours pas trop compris ni ce que c'est, ni comment l'utiliser mais je sais déjà comment le récupérer, c'est déjà pas mal...
Je vais me documenter la-dessus...

En tout cas, un grand merci à toi pour ton aide précieuse :)

Bonne journée,
Adrien