version=dB CPUlight v0150 #Persistent OnExit,Exit CoordMode, ToolTip, Screen Menu, tray, add, ABOUT, ABOUT ; create a Tray Menu Menu, tray, add, Menu, tray, add, exit, exit Menu, tray, tip, %Version% Menu, tray, NoStandard FileCount=0 ;initial value for FileCount CPUCount=0 ShowTT=0 CPUflag=0 AndOr=0 flag=3 ShowTT=0 Autostart=0 Ytt:=A_Screenheight-100 Xtt:=A_Screenwidth-100 IniRead, CPUloadVALUE, %A_Scriptdir%\CPUlight.ini, Settings, 1 ,10 ;CPU perc value IniRead, CPUtriggerCountvalue, %A_Scriptdir%\CPUlight.ini, Settings, 2,60 ;CPU Seconds IniRead, IdleSecondsTrigger, %A_Scriptdir%\CPUlight.ini, Settings, 3,120 ;Idle Seconds IniRead, AndOr, %A_Scriptdir%\CPUlight.ini, Settings, AndOrValue ;AndOR value IniRead, cpuGL, %A_Scriptdir%\CPUlight.ini, Settings, cpuGLValue ;cpu GreaterLess Value IniRead, idleGL, %A_Scriptdir%\CPUlight.ini, Settings, idleGLValue ;Idle GreaterLess Value IniRead, SelectedFile1, %A_Scriptdir%\CPUlight.ini, Settings, File1, IniRead, SelectedFile2, %A_Scriptdir%\CPUlight.ini, Settings, File2, IniRead, SelectedFile3, %A_Scriptdir%\CPUlight.ini, Settings, File3, IniRead, SelectedFile4, %A_Scriptdir%\CPUlight.ini, Settings, File4, IniRead, SelectedFile5, %A_Scriptdir%\CPUlight.ini, Settings, File5, IniRead, SelectedFile6, %A_Scriptdir%\CPUlight.ini, Settings, File6, IniRead, ExitClose, %A_Scriptdir%\CPUlight.ini, Settings, 8, ;When Complete IniRead, ShowTT, %A_Scriptdir%\CPUlight.ini, Settings, ShowTTvalue ;Show ToolTip IniRead, Autostart, %A_Scriptdir%\CPUlight.ini, Settings, Autostartvalue ;Autostart value Prefs: Gui,Destroy Gui, add, GroupBox, x6 y6 w170 h80,If the CPU load is Gui, add, DDL, x25 y25 w100 vcpugreaterless AltSubmit Choose%cpuGL%, Less Then||Greater Then Gui, add, edit,Number x25 y55 r1 w30 vCPUloadVALUE,%CPUloadVALUE% Gui, add, text,x+5,`% Gui, add, text,x+5 ,for Gui, add, edit , Number x+5 r1 w30 vCPUtriggerCountvalue,%CPUtriggerCountvalue% Gui, add, text,x+5 , Seconds. Gui, add, DDL,x185 y25 w60 vAndOr AltSubmit Choose%AndOR%, OR||AND Gui, add, GroupBox, x255 y6 w170 h80, The Keyboard and Mouse is idle Gui, add, DDL,x280 y25 w100 vKBIdleGREATERLESS AltSubmit Choose%idleGL%,Less Then||Greater Then Gui, add, edit, w40 x280 y55 r1 w30 vIdleSecondsTrigger,%IdleSecondsTrigger% Gui, add, text, x+5, Seconds. Gui, add, GroupBox, x6 y110 w420 h165, Then Run these files, once, in this sequence when the conditions are met, Gui, add, Button,x20 y130 gsetfile1 ,... Gui, add, edit, x+1 w370 vselectedfile1,%selectedfile1% Gui, add, Button,x20 y+2 gsetfile2 ,... Gui, add, edit, x+1 w370 vselectedfile2,%selectedfile2% Gui, add, Button,x20 y+2 gsetfile3 ,... Gui, add, edit, x+1 w370 vselectedfile3,%selectedfile3% Gui, add, Button,x20 y+2 gsetfile4 ,... Gui, add, edit, x+1 w370 vselectedfile4,%selectedfile4% Gui, add, Button,x20 y+2 gsetfile5 ,... Gui, add, edit, x+1 w370 vselectedfile5,%selectedfile5% Gui, add, Button,x20 y+2 gsetfile6 ,... Gui, add, edit, x+1 w370 vselectedfile6,%selectedfile6% Gui, Add, Button, w100 ys+5 gStarttimer Default,Start Timer Gui, Add, Button, w100 y+5 gRestartTimer,Reset Timer Gui, Add, Button, w100 y+5 gStopTimer,Stop Timer Gui, add, Checkbox, y+35 vShowTT,Show ToolTip Gui, add, Checkbox, y+5 vAutoStart,Auto Start Gui, add, Text,y+10 ,When Complete Gui, add, Radio, vExitClose Checked y+5 , Exit and Close Gui, add, Radio,, Stop and Wait Gui, add, Button, w100 y+35 gaccept, &Save Settings Gui, add, StatusBar,, SB_SetParts(120, 120) ;split Status bar Gui, show,,%version% GuiControl, , ShowTT,%ShowTT% GuiControl, , AutoStart,%AutoStart% If ExitClose=2 { GuiControl, , Stop and Wait, 1 } If AutoStart=1 { Gosub, Starttimer } Return CheckCPULoad: Gui, Submit, NoHide SetFormat, Float, 0.0 CPULoad := GetCPULoad_Short() ;get value of CPU function If CPULoad>%CPUloadVALUE% ;If CPU load is greater then { CPUCount=0 ;reset the CPUCount to 0 } CPUCount:=CPUCount+1 ;else add 1 to the CPUCount SB_SetText("CPU load = " . CPULoad " % " ,1) ;update the StatusBar SB_SetText("CPU Count = " CPUCount ,2) ;update the StatusBar SB_SetText("KB/Mouse idle for " ActualSecsIdle " Seconds",3) ;update the StatusBar If ShowTT=1 { ToolTip, %version% `nCPULoad = %CPUload% `nCPUCount %CPUCount% of %CPUtriggerCountvalue%`nKB/Mouse Idle = %ActualSecsIdle% of %IdleSecondsTrigger%, %Xtt% ,%Ytt%, } ActualSecsIdle:=(A_TimeIdle / 1000) CPUflag=0 Idleflag=0 If CPUGreaterLess = 1 Gosub, CPULess If CPUGreaterLess = 2 Gosub, CPUGreater If KBIdleGREATERLESS = 1 Gosub, KBidleGREATER If KBIdleGREATERLESS = 2 Gosub, KBidleLESS Flag:=Idleflag+CPUflag IfEqual Flag,%AndOr% { FileCount:= fileCount+1 file:=Selectedfile%FileCount% Run,%file%,, UseErrorLevel If ErrorLevel = Error { If ExitClose=2 { SetTimer, CheckCPULoad, off Return } If ExitClose=1 { ExitApp } } Return } Return CPULess: IfLess CPUtriggerCountvalue,%CPUCount% { CPUflag=1 } Return CPUGreater: IfGreater CPUCount,%CPUtriggerCountvalue% { CPUflag=1 } Return KBidleGREATER: IfLess ActualSecsIdle,%IdleSecondsTrigger% { Idleflag=1 } Return KBidleLESS: IfGreater ActualSecsIdle,%IdleSecondsTrigger% { Idleflag=1 } 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) } Starttimer: SetTimer, CheckCPULoad, 1000 timerToggle=0 Return StopTimer: SetTimer, CheckCPULoad, off timerToggle=1 Return RestartTimer: CPUCount=0 ;initial value for CPU CPUCount SetTimer, CheckCPULoad, 1000 ;perform Check every 1 second 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 setfile5: FileSelectFile, SelectedFile5, 3, , Open a file, If SelectedFile5 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile5, %Selectedfile5% Return setfile6: FileSelectFile, SelectedFile6, 3, , Open a file, If SelectedFile6 = { MsgBox, The user didn't select anything. Return } GuiControl, , selectedfile6, %Selectedfile6% Return accept: Gui, Submit IniWrite, %CPUloadVALUE%, %A_Scriptdir%\CPUlight.ini, Settings, 1 ;write values to disk IniWrite, %CPUtriggerCountvalue%, %A_Scriptdir%\CPUlight.ini, Settings, 2 IniWrite, %IdleSecondsTrigger%, %A_Scriptdir%\CPUlight.ini, Settings, 3 IniWrite, %AndOr%, %A_Scriptdir%\CPUlight.ini, Settings, AndOrValue IniWrite, %cpugreaterless%, %A_Scriptdir%\CPUlight.ini, Settings, cpuGLValue ;cpu GreaterLess Value IniWrite, %KBIdleGREATERLESS%, %A_Scriptdir%\CPUlight.ini, Settings, idleGLValue ;Idle GreaterLess Value IniWrite, %SelectedFile1%, %A_Scriptdir%\CPUlight.ini, Settings, File1 IniWrite, %SelectedFile2%, %A_Scriptdir%\CPUlight.ini, Settings, File2 IniWrite, %SelectedFile3%, %A_Scriptdir%\CPUlight.ini, Settings, File3 IniWrite, %SelectedFile4%, %A_Scriptdir%\CPUlight.ini, Settings, File4 IniWrite, %SelectedFile5%, %A_Scriptdir%\CPUlight.ini, Settings, File5 IniWrite, %SelectedFile6%, %A_Scriptdir%\CPUlight.ini, Settings, File6 IniWrite, %ExitClose%, %A_Scriptdir%\CPUlight.ini, Settings, 8 IniWrite, %ShowTT%, %A_Scriptdir%\CPUlight.ini, Settings, ShowTTvalue IniWrite, %Autostart%, %A_Scriptdir%\CPUlight.ini, Settings, AutoStartvalue Reload ;Reload script and values Return 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,Application will Exit when the First file Error is met. Gui,9:Add,Text,y+3, 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