;WinStep.ahk
; Step through groups of windows using hotkeys
;Skrommel @ 2005
#SingleInstance,Force
SetTitleMatchMode,2
applicationname=WinStep
Gosub,READINI
Gosub,TRAYMENU
Loop
{
Sleep,100
GetKeyState,shift,LShift,P
GetKeyState,ctrl,LCtrl,P
GetKeyState,alt,LAlt,P
GetKeyState,win,LWin,P
shifts=%shift%%ctrl%%alt%%win%
keys=
Loop,10
{
key:=A_Index-1
GetKeyState,state,%key%,P
keys=%keys%%state%
}
StringGetPos,key,keys,D
state=%shifts%%key%
StringLen,length,state
If length=5
If shifts=%add%
{
WinGet,%add%%key%,ID,A
window:=%add%%key%
WinGetTitle,title,ahk_id %window%
SoundPlay,%addsound%
GroupAdd,group%key%,ahk_id %window%
TOOLTIP("Added to Group" key ": " title)
}
Else
If shifts=%show%
{
SoundPlay,%showsound%
GroupActivate,group%key%
TOOLTIP("Activating Group" key)
}
}
TOOLTIP(tooltip,timeout=3000)
{
ToolTip,%tooltip%
Sleep,1000
SetTimer,TOOLTIPOFF,%timeout%
Return
}
TOOLTIPOFF:
SetTimer,TOOLTIPOFF,Off
ToolTip
Return
TRAYMENU:
Menu,Tray,DeleteAll
Menu,Tray,NoStandard
Menu,Tray,Add,%applicationname%,ABOUT
Menu,Tray,Add,
Menu,Tray,Add,&Settings...,SETTINGS
Menu,Tray,Add,&About...,ABOUT
Menu,Tray,Add,E&xit,Exit
Menu,Tray,Default,%applicationname%
Menu,Tray,Tip,%applicationname%
Return
SETTINGS:
Gosub,READINI
RunWait,%applicationname%.ini
Gosub,READINI
Return
EXIT:
ExitApp
READINI:
IfNotExist,%applicationname%.ini
{
ini=`;[Settings]
ini=%ini%`n`;addsound=C:\Windows\Media\notify.wav `;Sound to play when adding a window to a group
ini=%ini%`n`;showsound=C:\Windows\Media\ding.wav `;Sound to play when showing a window
ini=%ini%`n`;addshift=0 `;0=No 1=Yes Use shift in show Hotkey?
ini=%ini%`n`;addctrl=1 `; ctrl
ini=%ini%`n`;addalt=0 `; alt
ini=%ini%`n`;addwin=0 `; win
ini=%ini%`n`;showshift=0 `;0=No 1=Yes Use shift in show Hotkey?
ini=%ini%`n`;showctrl=0 `; ctrl
ini=%ini%`n`;showalt=1 `; alt
ini=%ini%`n`;showwin=0 `; win
ini=%ini%`n
ini=%ini%`n[Settings]
ini=%ini%`naddsound=C:\Windows\Media\notify.wav
ini=%ini%`nshowsound=C:\Windows\Media\ding.wav
ini=%ini%`naddshift=0
ini=%ini%`naddctrl=1
ini=%ini%`naddalt=0
ini=%ini%`naddwin=0
ini=%ini%`nshowshift=0
ini=%ini%`nshowctrl=0
ini=%ini%`nshowalt=1
ini=%ini%`nshowwin=0
FileAppend,%ini%,%applicationname%.ini
ini=
}
IniRead,addsound,%applicationname%.ini,Settings,addsound
IniRead,showsound,%applicationname%.ini,Settings,C:\Windows\Media\tada.wav
IniRead,addshift,%applicationname%.ini,Settings,addshift
IniRead,addctrl,%applicationname%.ini,Settings,addctrl
IniRead,addalt,%applicationname%.ini,Settings,addalt
IniRead,addwin,%applicationname%.ini,Settings,addwin
IniRead,showshift,%applicationname%.ini,Settings,showshift
IniRead,showctrl,%applicationname%.ini,Settings,showctrl
IniRead,showalt,%applicationname%.ini,Settings,showalt
IniRead,showwin,%applicationname%.ini,Settings,showwin
If addshift=1
addshift=D
Else
addshift=U
If addctrl=1
addctrl=D
Else
addctrl=U
If addalt=1
addalt=D
Else
addalt=U
If addwin=1
addwin=D
Else
addwin=U
If showshift=1
showshift=D
Else
showshift=U
If showctrl=1
showctrl=D
Else
showctrl=U
If showalt=1
showalt=D
Else
showalt=U
If showwin=1
showwin=D
Else
showwin=U
add=%addshift%%addctrl%%addalt%%addwin%
show=%showshift%%showctrl%%showalt%%showwin%
Return
ABOUT:
Gui,99:Destroy
Gui,99:Margin,20,20
Gui,99:Add,Picture,xm Icon1,%applicationname%.exe
Gui,99:Font,Bold
Gui,99:Add,Text,x+10 yp+10,%applicationname% v1.0
Gui,99:Font
Gui,99:Add,Text,y+10,- Step through groups of windows using hotkeys
Gui,99:Add,Text,y+0,Ctrl-0: add a window to a Group0
Gui,99:Add,Text,y+0,Ctrl-1: add a window to a Group1
Gui,99:Add,Text,y+0, ... : ...
Gui,99:Add,Text,y+0,Alt-0 : show the next window of Group0
Gui,99:Add,Text,y+0,Alt-1 : show the next window of Group1
Gui,99:Add,Text,y+0, ... : ...
Gui,99:Add,Text,y+10,- To change hotkeys and sounds, choose Settings in the tray menu
Gui,99:Add,Picture,xm y+20 Icon5,%applicationname%.exe
Gui,99:Font,Bold
Gui,99:Add,Text,x+10 yp+10,1 Hour Software by Skrommel
Gui,99:Font
Gui,99:Add,Text,y+10,For more tools, information and donations, please visit
Gui,99:Font,CBlue Underline
Gui,99:Add,Text,y+5 G1HOURSOFTWARE,www.1HourSoftware.com
Gui,99:Font
Gui,99:Add,Picture,xm y+20 Icon7,%applicationname%.exe
Gui,99:Font,Bold
Gui,99:Add,Text,x+10 yp+10,DonationCoder
Gui,99:Font
Gui,99:Add,Text,y+10,Please support the contributors at
Gui,99:Font,CBlue Underline
Gui,99:Add,Text,y+5 GDONATIONCODER,www.DonationCoder.com
Gui,99:Font
Gui,99:Add,Picture,xm y+20 Icon6,%applicationname%.exe
Gui,99:Font,Bold
Gui,99:Add,Text,x+10 yp+10,AutoHotkey
Gui,99:Font
Gui,99:Add,Text,y+10,This tool was made using the powerful
Gui,99:Font,CBlue Underline
Gui,99:Add,Text,y+5 GAUTOHOTKEY,www.AutoHotkey.com
Gui,99:Font
Gui,99:Show,,%applicationname% About
hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt") ;IDC_HAND
OnMessage(0x200,"WM_MOUSEMOVE")
Return
1HOURSOFTWARE:
Run,http://www.1hoursoftware.com,,UseErrorLevel
Return
DONATIONCODER:
Run,http://www.donationcoder.com,,UseErrorLevel
Return
AUTOHOTKEY:
Run,http://www.autohotkey.com,,UseErrorLevel
Return
99GuiClose:
Gui,99:Destroy
OnMessage(0x200,"")
DllCall("DestroyCursor","Uint",hCur)
Return
WM_MOUSEMOVE(wParam,lParam)
{
Global hCurs
MouseGetPos,,,,ctrl
If ctrl in Static14,Static18,Static22
DllCall("SetCursor","UInt",hCurs)
Return
}
Return
Comments