Latest Version (1.1):
http://www.autohotkey.net/~joemoeschmoe/WinHideShow.ahk
Here's something I've found to be quite handy - especially at work. It helps me clean up my taskbar or temporary eliminate window(s) from my view (both of which is already done pretty well with Dexpot, but this is a different angle to attack the problems from...).
Functions (SC15D is my Command Key on the right side of the keyboard):
SC15D & Enter -- Hide Current Window and add it to hidden window list
SC15D & / -- Show and activate "previously" hidden window (the one at the top of the list)
SC15D & Backspace -- Show all hidden windows
SC15D & RShift -- Display a list of hidden windows with their index next to it. If user presses 1-9, it will show and activate the window with that index.
I've also put
ShowAllHiddenWindows() in both of my reloading scripts to make sure I'm not stuck with a hidden window after reloading (I'm not sure how to find a hidden window of unknown title).
Code:
;SC15D is my Command Key on the right side of the keyboard
SC15D & Enter:: ;Hide current window - add to list
SetTitleMatchMode, 3 ;***
if (NumHiddenWindows = "")
NumHiddenWindows:=0
NumHiddenWindows:=NumHiddenWindows+1
WinGetTitle PreviousHiddenWindow, A
HiddenWindows%NumHiddenWindows%:=PreviousHiddenWindow
WinMinimize A
WinHide %PreviousHiddenWindow%
WinActivate
;msgbox _%NumHiddenWindows%_%PreviousHiddenWindow%
return ;*
SC15D & \:: ;bring back previously hidden window
SetTitleMatchMode, 3 ;***
;Msgbox %PrevMinimize%
if (PreviousHiddenWindow <> "")
{
WinShow %PreviousHiddenWindow%
WinRestore %PreviousHiddenWindow%
WinActivate %PreviousHiddenWindow%
NumHiddenWindows:=NumHiddenWindows - 1
PreviousHiddenWindow:=HiddenWindows%NumHiddenWindows%
}
return ;*
SC15D & Backspace::ShowAllHiddenWindows() ;Show All Hidden Windows
SC15D & RShift:: ;Hidden Window List & Goto
SetTitleMatchMode, 3 ;***
if (NumHiddenWindows="" or NumHiddenWindows <= 0)
{
msgbox There are no Hidden Windows at this time.
return
}
WindowList=
Loop %NumHiddenWindows%
{
if (A_Index >= 10)
WindowList:=WindowList . "...The Following windows cannot be reached directly through this...`n"
CurWindow:=HiddenWindows%A_Index%
;WinShow %CurWindow%
WindowList:=WindowList . A_Index . ") " . CurWindow . "`n"
}
Progress , m zh0 fs12 c00 WS550 W750
, %WindowList%
,
, Window List - Select the number you want to unhide
Input, VKey_Main, L1
progress , off
if (VKey_Main >= 1 and VKey_Main <= 9)
{
WinToShow:=HiddenWindows%VKey_Main%
WinShow %WinToShow%
WinActivate %WinToShow%
if (VKey_Main < NumHiddenWindows)
{
NumLoops:= NumHiddenWindows - VKey_Main
Loop %NumLoops%
{
IndexToEdit:=VKey_Main + A_Index - 1
IndexToCopy:=IndexToEdit + 1
HiddenWindows%IndexToEdit%:=HiddenWindows%IndexToCopy%
}
NumHiddenWindows:=NumHiddenWindows - 1
}
else
{
NumHiddenWindows:=NumHiddenWindows - 1
PreviousHiddenWindow:=HiddenWindows%NumHiddenWindows%
}
}
return ;*
ShowAllHiddenWindows()
{
global NumHiddenWindows
global HiddenWindows
SetTitleMatchMode, 3
;msgbox _%NumHiddenWindows%_
if (NumHiddenWindows="" or NumHiddenWindows <= 0)
return
Loop %NumHiddenWindows%
{
CurWindow:=HiddenWindows%A_Index%
;msgbox %CurWindow%
WinShow %CurWindow%
WinRestore %CurWindow%
WinActivate %CurWindow%
}
NumHiddenWindows:=0
}
Comments?[/url]