;OpeningHours.ahk ; Runs a program when inside a certain time interval, and closes it when outside ;Skrommel @2006 #SingleInstance,off #Persistent,On applicationname=OpeningHours Gosub,TRAYMENU If 0=0 { Gosub,ABOUT Return } start=0000 end=2400 checkdelay=1000 run=1 close=1 kill=1 killdelay=5000 hide=0 commandline= Loop,%0% { parameter:=%A_Index% If A_Index=1 program=%parameter% Else If (parameter="close=0") close=0 Else If (parameter="kill=0") kill=0 Else If (parameter="run=0") run=0 Else If (parameter="hide=1") Menu,Tray,NoIcon Else If InStr(parameter,"start=") StringTrimLeft,start,parameter,6 Else If InStr(parameter,"end=") StringTrimLeft,end,parameter,4 Else If InStr(parameter,"checkdelay=") StringTrimLeft,checkdelay,parameter,11 Else If InStr(parameter,"killdelay=") StringTrimLeft,killdelay,parameter,10 commandline:=commandline parameter " " } Gosub,TRAYMENU SetTimer,CHECK,%checkdelay% Return CHECK: SetTimer,CHECK,Off pid=0 WinGet,ids,List,,,Program Manager Loop,%ids% { Sleep,0 StringTrimRight,id,ids%A_Index%,0 WinGet,pid,PID,ahk_id %id% path:=GetModuleFileNameEx(pid) IfInString,path,%program% Break Else pid=0 } StringMid,now,A_Now,9,4 If (now>=start And now0 { If (close=1 Or kill=1) WinClose,ahk_pid %pid% If kill=1 { Sleep,%killdelay% WinKill,ahk_pid %pid% } } } SetTimer,CHECK,%checkdelay%,On Return TRAYMENU: Menu,Tray,NoStandard Menu,Tray,DeleteAll Menu,Tray,Add,%applicationname%,SWAP Menu,Tray,Add, Menu,Tray,Add,&Enabled,SWAP Menu,Tray,Add, Menu,Tray,Add,&About...,ABOUT Menu,Tray,Add,E&xit,EXIT Menu,Tray,Check,&Enabled Menu,Tray,Default,%applicationname% Menu,Tray,Tip,%applicationname% %commandline% Return SWAP: Menu,Tray,ToggleCheck,&Enabled Suspend,Toggle 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,Runs a program when inside a certain time interval, and closes it when outside. Gui,99:Add,Text,y+10,- Command line: Gui,99:Add,Text,y+5,OpeningHours.exe start= end= Gui,99:Add,Text,y+5,%A_Space%%A_Space%%A_Space%[ checkdelay=