; Optional debugging feature.
Opt('TrayIconDebug', True)
; Run Firefox if not running.
If Not ProcessExists('firefox.exe') Then
ShellExecute('"C:\Program Files\Mozilla Firefox\firefox.exe"')
EndIf
; Wait for a window to match the class.
WinWait('[CLASS:MozillaWindowClass]')
$hFirefox = 0
$iAbort = 5
Do
Sleep(1000)
; Get all class windows into an array.
$aWList = WinList('[CLASS:MozillaWindowClass]')
For $i1 = 1 To UBound($aWList) -1
; Get the visible window from the window handle.
If BitAND(WinGetState($aWList[$i1][1]), 2) Then
$hFirefox = $aWList[$i1][1]
_WinState($aWList[$i1][1], $aWList[$i1][0], True)
ExitLoop 2
Else
_WinState($aWList[$i1][1], $aWList[$i1][0], False)
EndIf
Next
$iAbort -= 1
Until Not WinExists('[CLASS:MozillaWindowClass]') Or $iAbort = 0
; Minimize the visible window.
If WinSetState($hFirefox, '', @SW_MINIMIZE) Then
ConsoleWrite('A Firefox window has been minimized.' & @CRLF)
EndIf
Exit
Func _WinState($hWinHandle, $sWinTitle, $bWinVisible = False)
; Debug output for visible state of a window.
Local $sWinVisible = $bWinVisible ? 'True' : 'False'
ConsoleWrite(StringFormat('Handle: %s Visible: %-5s Title: %s', $hWinHandle, $sWinVisible, $sWinTitle) & @CRLF)
EndFunc
Даже если вы установите ярлык Firefox, чтобы свернуть и использовать его
чтобы запустить Firefox, Firefox может не свернуться при запуске.
Вот почему флаг показа @SW_MINIMIZE
для
Функция ShellExecute может не работать.
Аргумент -tray
существует, хотя я не могу заставить его работать как
упоминается в Параметры командной строки .
Чтобы свести к минимуму при запуске, предоставленный код может помочь.
Он найдет 1-е окно, которое видно из класса
MozillaWindowClass
и попытается свести его к минимуму.
Переменная $hFirefox
может содержать дескриптор
видимое окно Firefox, которое можно использовать после Do
цикл завершен.
Некоторый код является необязательным, т. Е. _WinState()
используется для вывода
Отладочная информация для консоли, чтобы узнать, если окно поиска
для видимого окна работает нормально.