Tested on WinXP.
Note: Mic checked says "Active", not "Mute" , and is changed via hotkey.
;#NoTrayIcon #Up:: SoundSet +1 SoundSet, +1, wave gosub, vupdt return #Down:: SoundSet -1 SoundSet, -1, wave gosub, vupdt return #Left:: SoundSet, -0, Microphone, mute IfWinExist, volume { SoundGet, m_m, Microphone, mute if m_m = On GuiControl,, R, 0 else GuiControl,, R, 1 SetTimer,label, 2000 return } Gosub, show Return #Right:: SoundSet, -0, MASTER, mute IfWinExist, volume { SoundGet, v_m, master, mute if v_m = On GuiControl,, Pic1,*icon40 C:\WINDOWS\system32\mmsys.cpl else GuiControl,, Pic1, *icon1 C:\WINDOWS\system32\mmsys.cpl SetTimer,label, 2000 return } Gosub, show Return ;This routine is isolated to avoid icon flashing vupdt: IfWinExist, volume { SoundGet, master_volume GuiControl,, MP, %master_volume% SetTimer,label, 2000 return } Gosub, show Return show: SoundGet, master_volume SoundGet, m_m, Microphone, mute SoundGet, v_m, master, mute IfWinNotExist, volume { Gui, +ToolWindow -Caption +0x400000 +alwaysontop Gui, Add, GroupBox, x3 y12 w40 h45 cblack, Gui, Add, GroupBox, x3 y60 w40 h35 cblack, Mic: Gui, Add, text, x10 y1 ,Volume: Gui, Add, Progress,vertical vMP x45 y18 w13 h77 c333cc,%master_volume% Gui, Add, checkbox, vR x16 y75 w15 h15 cblue, if v_m = On Gui, Add, pic, x7 y22 vPic1 icon40, C:\WINDOWS\system32\mmsys.cpl else Gui, Add, pic, x7 y22 vPic1 icon1, C:\WINDOWS\system32\mmsys.cpl if m_m = On GuiControl,, R, 0 else GuiControl,, R, 1 Gui, Show, NoActivate x720 y460 h100 w60, volume } SetTimer,label, 2000 return label: SetTimer,label, off Gui, destroy