I just needed a quick and simple script to run some other scripts (non ahk) every 10 seconds.
Thought it might be useful to someone else.
I know this could be cleaner and shorter but I was lazy.
Criticism welcomed
Thank you,
ManicResin
Code:
#NoEnv
#SingleInstance Force
#Persistent
#MaxThreads 20
SendMode Input
SetWorkingDir %A_ScriptDir%
IfNotExist settings.ini
{
FileAppend,
(
[Task_1]
A_Active_1=Off
A_Seconds_1=10
A_Run_1=Notepad.exe
[Task_2]
A_Active_2=Off
A_Seconds_2=10
A_Run_2=Notepad.exe
[Task_3]
A_Active_3=Off
A_Seconds_3=10
A_Run_3=Notepad.exe
[Task_4]
A_Active_4=Off
A_Seconds_4=10
A_Run_4=Notepad.exe
[Task_5]
A_Active_5=Off
A_Seconds_5=10
A_Run_5=Notepad.exe
),settings.ini
}
Locked = 1
Hidden = 0
;--------------------------------------------------------------------
IniRead A_Active_1, %A_WorkingDir%\settings.ini, Task_1, A_Active_1
IniRead A_Seconds_1, %A_WorkingDir%\settings.ini, Task_1, A_Seconds_1
IniRead A_Run_1, %A_WorkingDir%\settings.ini, Task_1, A_Run_1
If A_Active_1 = On
A_Active_1 = 1
Else
A_Active_1 = 2
;--------------------------------------------------------------------
IniRead A_Active_2, %A_WorkingDir%\settings.ini, Task_2, A_Active_2
IniRead A_Seconds_2, %A_WorkingDir%\settings.ini, Task_2, A_Seconds_2
IniRead A_Run_2, %A_WorkingDir%\settings.ini, Task_2, A_Run_2
If A_Active_2 = On
A_Active_2 = 1
Else
A_Active_2 = 2
;-------------------------------------------------------------------------
IniRead A_Active_3, %A_WorkingDir%\settings.ini, Task_3, A_Active_3
IniRead A_Seconds_3, %A_WorkingDir%\settings.ini, Task_3, A_Seconds_3
IniRead A_Run_3, %A_WorkingDir%\settings.ini, Task_3, A_Run_3
If A_Active_3 = On
A_Active_3 = 1
Else
A_Active_3 = 2
;-------------------------------------------------------------------------
IniRead A_Active_4, %A_WorkingDir%\settings.ini, Task_4, A_Active_4
IniRead A_Seconds_4, %A_WorkingDir%\settings.ini, Task_4, A_Seconds_4
IniRead A_Run_4, %A_WorkingDir%\settings.ini, Task_4, A_Run_4
If A_Active_4 = On
A_Active_4 = 1
Else
A_Active_4 = 2
;-------------------------------------------------------------------------
IniRead A_Active_5, %A_WorkingDir%\settings.ini, Task_5, A_Active_5
IniRead A_Seconds_5, %A_WorkingDir%\settings.ini, Task_5, A_Seconds_5
IniRead A_Run_5, %A_WorkingDir%\settings.ini, Task_5, A_Run_5
If A_Active_5 = On
A_Active_5 = 1
Else
A_Active_5 = 2
;-------------------------------------------------------------------------
Menu Tray, Icon, C:\WINDOWS\system32\shell32.dll, 266 ;215 Use this if your icon is blank
Menu Tray, NoStandard
Menu Tray, Add, Hide, GuiClose
Menu Tray, Add, Save, Save
Menu Tray, Add,
Menu Tray, Add, Exit, Close
Gui +Theme
Gui -MinimizeBox
Gui Color, White
Gui Add, Button, x0 y+0 w49 h20 vLt gLock, Unlock
;----------------------------------------------------------------------------------
Gui Add, Edit, x0 y+0 w50 r1 ReadOnly -0x10000, Task 1
Gui Add, DropDownList, x+-1 w40 Choose%A_Active_1% vA_Active_1 , On|Off
Gui Add, Edit, x+-1 w50 vA_Seconds_1 , %A_Seconds_1%
Gui Add, Edit, x+-1 w356 r1 vA_Run_1, %A_Run_1%
;-----------------------------------------------------------------------------------
Gui Add, Edit, x0 y+-1 w50 r1 ReadOnly -0x10000, Task 2
Gui Add, DropDownList, x+-1 w40 Choose%A_Active_2% vA_Active_2 , On|Off
Gui Add, Edit, x+-1 w50 vA_Seconds_2 , %A_Seconds_2%
Gui Add, Edit, x+-1 w356 r1 vA_Run_2, %A_Run_2%
;-----------------------------------------------------------------------------------
Gui Add, Edit, x0 y+-1 w50 r1 ReadOnly -0x10000, Task 3
Gui Add, DropDownList, x+-1 w40 Choose%A_Active_3% vA_Active_3 , On|Off
Gui Add, Edit, x+-1 w50 vA_Seconds_3 , %A_Seconds_3%
Gui Add, Edit, x+-1 w356 r1 vA_Run_3, %A_Run_3%
;-----------------------------------------------------------------------------------
Gui Add, Edit, x0 y+-1 w50 r1 ReadOnly -0x10000, Task 4
Gui Add, DropDownList, x+-1 w40 Choose%A_Active_4% vA_Active_4 , On|Off
Gui Add, Edit, x+-1 w50 vA_Seconds_4 , %A_Seconds_4%
Gui Add, Edit, x+-1 w356 r1 vA_Run_4, %A_Run_4%
;-----------------------------------------------------------------------------------
Gui Add, Edit, x0 y+-1 w50 r1 ReadOnly -0x10000, Task 5
Gui Add, DropDownList, x+-1 w40 Choose%A_Active_5% vA_Active_5 , On|Off
Gui Add, Edit, x+-1 w50 , %A_Seconds_5%
Gui Add, Edit, x+-1 w356 r1 vA_Run_5, %A_Run_5%
;-----------------------------------------------------------------------------------
Gui Add, Edit, x49 y0 w40 r1 ReadOnly -0x10000, Status
Gui Add, Edit, x+-1 w50 r1 ReadOnly -0x10000, Seconds
Gui Add, Edit, x+-1 w356 r1 ReadOnly -0x10000, Run Path
;-----------------------------------------------------------------------------------
Loop 60
{
GuiControl Disable,ComboBox%A_Index%
GuiControl Disable,Edit%A_Index%
}
;-----------------------------------------------------------------------------------
Gui Show, w493 h121, Run Task
GoSub Check_Tasks
Return
Lock:
If Locked = 0
{
Locked = 1
Gui Submit, NoHide
Loop 60
{
GuiControl Disable,ComboBox%A_Index%
GuiControl Disable,Edit%A_Index%
}
GuiControl ,,Lt, Unlock
GoSub Save
}
Else If Locked = 1
{
Locked = 0
Loop 60
{
GuiControl Enable,ComboBox%A_Index%
GuiControl Enable,Edit%A_Index%
}
GuiControl ,,Lt, Save
}
GoSub Check_Tasks
Return
Check_Tasks:
Gui Submit, NoHide
;------------------------------------------------------------
If A_Active_1 = On
{
A_Seconds_1 *= 1000
SetTimer Task_Job_1, %A_Seconds_1%
}
If A_Active_1 = Off
{
SetTimer Task_Job_1, Off
}
;------------------------------------------------------------
If A_Active_2 = On
{
A_Seconds_2 *= 1000
SetTimer Task_Job_2, %A_Seconds_2%
}
If A_Active_2 = Off
{
SetTimer Task_Job_2, Off
}
;------------------------------------------------------------
If A_Active_3 = On
{
A_Seconds_3 *= 1000
SetTimer Task_Job_3, %A_Seconds_3%
}
If A_Active_3 = Off
{
SetTimer Task_Job_3, Off
}
;------------------------------------------------------------
If A_Active_4 = On
{
A_Seconds_4 *= 1000
SetTimer Task_Job_4, %A_Seconds_4%
}
If A_Active_4 = Off
{
SetTimer Task_Job_4, Off
}
;------------------------------------------------------------
If A_Active_5 = On
{
A_Seconds_5 *= 1000
SetTimer Task_Job_5, %A_Seconds_5%
}
If A_Active_5 = Off
{
SetTimer Task_Job_5, Off
}
;------------------------------------------------------------
Return
Task_Job_1:
Run %A_Run_1%
Return
Task_Job_2:
Run %A_Run_2%
Return
Task_Job_3:
Run %A_Run_3%
Return
Task_Job_4:
Run %A_Run_4%
Return
Task_Job_5:
Run %A_Run_5%
Return
Save:
Gui Submit, NoHide
IniWrite %A_Active_1%, %A_WorkingDir%\settings.ini, Task_1, A_Active_1
IniWrite %A_Seconds_1%, %A_WorkingDir%\settings.ini, Task_1, A_Seconds_1
IniWrite %A_Run_1%, %A_WorkingDir%\settings.ini, Task_1, A_Run_1
;--------------------------------------------------------------------
IniWrite %A_Active_2%, %A_WorkingDir%\settings.ini, Task_2, A_Active_2
IniWrite %A_Seconds_2%, %A_WorkingDir%\settings.ini, Task_2, A_Seconds_2
IniWrite %A_Run_2%, %A_WorkingDir%\settings.ini, Task_2, A_Run_2
;--------------------------------------------------------------------
IniWrite %A_Active_3%, %A_WorkingDir%\settings.ini, Task_3, A_Active_3
IniWrite %A_Hours_3%, %A_WorkingDir%\settings.ini, Task_3, A_Hours_3
IniWrite %A_Seconds_3%, %A_WorkingDir%\settings.ini, Task_3, A_Seconds_3
IniWrite %A_Run_3%, %A_WorkingDir%\settings.ini, Task_3, A_Run_3
;--------------------------------------------------------------------
IniWrite %A_Active_4%, %A_WorkingDir%\settings.ini, Task_4, A_Active_4
IniWrite %A_Seconds_4%, %A_WorkingDir%\settings.ini, Task_4, A_Seconds_4
IniWrite %A_Run_4%, %A_WorkingDir%\settings.ini, Task_4, A_Run_4
;--------------------------------------------------------------------
IniWrite %A_Active_5%, %A_WorkingDir%\settings.ini, Task_5, A_Active_5
IniWrite %A_Seconds_5%, %A_WorkingDir%\settings.ini, Task_5, A_Seconds_5
IniWrite %A_Run_5%, %A_WorkingDir%\settings.ini, Task_5, A_Run_5
;--------------------------------------------------------------------
Return
GuiClose:
If Locked = 0
{
GoSub Lock
}
If Hidden = 0
{
Hidden = 1
Menu Tray, Rename, Hide, Show
WinHide Run Task
}
Else If Hidden = 1
{
Hidden = 0
Menu Tray, Rename, Show, Hide
WinShow Run Task
}
GoSub Save
Return
Close:
GoSub Save
ExitApp