BringBackFromTray: for MinimizeToTray extension users (Firefox or Thunderbird)

The first extension I installed on Firefox was MinimizeToTray. I love it.

Sadly, It's easy to minimize my prefered browser (Ctrl+Shift+M) but there is no keystroke to bring it back from the Tray: I though for a long time about implementing a global hook that would wait for the keyboard shortcut and activate the Firefox window.

My brand new Logitech keyboard provided a much easier solution! This keyboard has special buttons that can be configured to launch the program of my choice. So I wrote the program below (AutoIT language). Feel free to use it. But, as usual, take note that this program is provided without any guarantee:

; static variables
"C:\Program Files\Mozilla Firefox\firefox.exe"

; set AutoIT options
AutoItSetOption("WinTitleMatchMode", 2)

; Get state of the firefox window
; (eg. 21 minimize to tray = 1 + 4 + 16 )
; (eg. 23 minimize = 1 + 2 + 4 + 16 )
$state = WinGetState($program_name)

; not runing ?
; -> launch the program
If Not $state Then
; not visible ?
; -> bring from the tray
ElseIf Not BitAND($state, 2) Then
; visible and active ?
; -> MinimizeToTray
ElseIf BitAND($state, 8) Then
ControlSend ($program_name, "", ""_
; visible but not active ?
; -> activate

I recommend you have a look into this great tool called AutoIT: it is extremely useful and efficient in a day-to-day basis; and its syntax is very simple (Basic-like).