version=dB CPUlight v1b #Persistent Menu, tray, add, ABOUT, ABOUT ; create a Tray Menu Menu, tray, add, Preferences,Prefs Menu, tray, add, Menu, tray, add, exit, exit Menu, tray, tip, %Version% Menu, tray, NoStandard IniRead, Loadlevel, %A_Scriptdir%\CPUlight.ini, Settings, 1 ,10 ;Read values from disk IniRead, ConsecSeconds, %A_Scriptdir%\CPUlight.ini, Settings, 2,60 IniRead, IdleSecondsTrigger, %A_Scriptdir%\CPUlight.ini, Settings, 3,120 IniRead, SelectedFile1, %A_Scriptdir%\CPUlight.ini, Settings, 4 IniRead, SelectedFile2, %A_Scriptdir%\CPUlight.ini, Settings, 5 IniRead, SelectedFile3, %A_Scriptdir%\CPUlight.ini, Settings, 6 IniRead, SelectedFile4, %A_Scriptdir%\CPUlight.ini, Settings, 7 FileCount=0 ;initial value for File Count RestartTimer: Count=0 ;initial value for CPU Count SetTimer, CheckCPULoad, 1000 ;perform Check every 1 second Return Prefs: Gui,Destroy ; Gui, +AlwaysOnTop ;keep window ontop, Gui, add, GroupBox, x6 y6 w200 h60,CPU load is less then Gui, add, edit,Number x15 y30 r1 w30 vLoadlevel,%loadlevel% Gui, add, text,x+5,`% Gui, add, text,x+5 ,for Gui,add, edit , Number x+5 y30 r1 w30 vConsecSeconds,%ConsecSeconds% Gui, add, text,x+5 , Seconds. Gui, add, text,x220 y30, AND Gui, add, GroupBox, x255 y6 w200 h60, Keyboard and Mouse is idle for Gui, add, edit, w40 x270 y30 r1 w30 vIdleSecondsTrigger,%IdleSecondsTrigger% Gui, add, text, x+5, Seconds. Gui, add, GroupBox, x6 y80 w450 h150, Then Run these files once in sequence when condition met, Gui, add, Button,x20 y100 gsetfile1 ,... Gui, add, edit, x+1 w400 vselectedfile1,%selectedfile1% Gui, add, Button,x20 y130 gsetfile2 ,... Gui, add, edit, x+1 w400 vselectedfile2,%selectedfile2% Gui, add, Button,x20 y160 gsetfile3 ,... Gui, add, edit, x+1 w400 vselectedfile3,%selectedfile3% Gui, add, Button,x20 y190 gsetfile4 ,... Gui, add, edit, x+1 w400 vselectedfile4,%selectedfile4% Gui, add, Button, xm y240 w120 gexit, &Exit (Dont Save) Gui, add, Checkbox, x+25 y245 w100 vtimerToggle gToggle ,Pause Timing Gui, add, Button, Default x+25 y240 w160 gaccept, &Minimise to tray (save) Gui, add, StatusBar,, SB_SetParts(120, 120) ;split Status bar Gui, show,,%version% Return CheckCPULoad: Gui, Submit, NoHide SetFormat, Float, 0.0 CPULoad := GetCPULoad_Short() ;get value of CPU function If CPULoad>%Loadlevel% ;If CPU load is greater then { Count=0 ;reset the Count to 0 } TrayTip, ,%CPULoad% Count:=Count+1 ;else add 1 to the Count SB_SetText("CPU load = " . CPULoad " % " ,1) ;update the StatusBar SB_SetText("CPU Count = " Count ,2) ;update the StatusBar SB_SetText("KB/Mouse idle for " ActualSecsIdle " Seconds",3) ;update the StatusBar ActualSecsIdle:=(A_TimeIdle / 1000) IfGreater, Count, %ConsecSeconds% { IfGreater, ActualSecsIdle,%IdleSecondsTrigger% { FileCount:= fileCount+1 file:=Selectedfile%FileCount% IfEqual, file,Error { exitapp } Run,%file% Return } Return } Return GetCPULoad_Short() { static IdleTime, Tick SetBatchLines, -1 OldIdleTime = %IdleTime% OldTick = %Tick% DllCall("kernel32.dll\GetSystemTimes", "uint",&IdleTicks, "uint",0, "uint",0) IdleTime := *(&IdleTicks) Loop 7 IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index ) Tick := A_TickCount Return 100 - 0.01*(IdleTime - OldIdleTime)/(Tick - OldTick) } Toggle: ;pause timer If timerToggle=0 { SetTimer, CheckCPULoad, off timerToggle=1 Return } If timerToggle=1 ;restart timer { SetTimer, CheckCPULoad, 1000 timerToggle=0 Return } Return setfile1: ;setfiles FileSelectFile, SelectedFile1, 3, , Open a file, If SelectedFile1 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile1, %Selectedfile1% Return setfile2: FileSelectFile, SelectedFile2, 3, , Open a file, If SelectedFile2 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile2, %Selectedfile2% Return setfile3: FileSelectFile, SelectedFile3, 3, , Open a file, If SelectedFile3 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile3, %Selectedfile3% Return setfile4: FileSelectFile, SelectedFile4, 3, , Open a file, If SelectedFile4 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile4, %Selectedfile4% Return accept: Gui, Submit IniWrite, %Loadlevel%, %A_Scriptdir%\CPUlight.ini, Settings, 1 ;write values to disk IniWrite, %ConsecSeconds%, %A_Scriptdir%\CPUlight.ini, Settings, 2 IniWrite, %IdleSecondsTrigger%, %A_Scriptdir%\CPUlight.ini, Settings, 3 IniWrite, %SelectedFile1%, %A_Scriptdir%\CPUlight.ini, Settings, 4 IniWrite, %SelectedFile2%, %A_Scriptdir%\CPUlight.ini, Settings, 5 IniWrite, %SelectedFile3%, %A_Scriptdir%\CPUlight.ini, Settings, 6 IniWrite, %SelectedFile4%, %A_Scriptdir%\CPUlight.ini, Settings, 7 Reload ;Reload script and values ABOUT: Gui,9:Font,Bold Gui,9:Add, GroupBox,x6 y15 w400 h120 ,%Version% Gui,9:Font Gui,9:Add,Text,x20 y35,'%Version%' will Check for the CPU level and Keyboard/Mouse Activity. Gui,9:Add,Text,y+3,If the conditions are met, then %Version% will Run the Files in sequence. Gui,9:Add,Text,y+3,Each file will only Run when the conditions are met. Gui,9:Add,Text,y+3, Gui,9:Add,Text,y+3,If there are no more files to execute, %version% will Exit. Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,GroupBox,x6 y145 w400 h175,DonationCoder Gui,9:Font Gui,9:Add,Text,x20 y165,Please support the DonationCoder community Gui,9:Font,CBlue underline Gui,9:Add,Text,y+3 GDONATIONCODER,www.DonationCoder.com Gui,9:Font Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,Text,y+3 yp+10,AutoHotkey Gui,9:Font Gui,9:Add,Text,y+3,This program was made using AutoHotkey Gui,9:Font,CBlue underline Gui,9:Add,Text,y+3 GAUTOHOTKEY,www.AUTOHOTKEY.com Gui,9:Font Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,Text,y+3 ,made by DoubleBogey Gui,9:Font Gui,9:Add,Text,y+3,Find more mini-apps like this`, visit Gui,9:Font,CBlue underline Gui,9:Add,Text,y+3 GDONATIONCODER,www.DonationCoder.com Gui,9:Add,Button,xm GABOUTOK Default w75,&OK Gui,9:Show,,About %Version% Return ABOUTOK: Gui, 9:Destroy Return DONATIONCODER: Run,http://www.donationcoder.com,,UseErrorLevel Return AUTOHOTKEY: Run,http://www.autoHotkey.com,,UseErrorLevel Return Escape:: exit: GuiClose: ExitApp