View difference between Paste ID: XJ0iHKVw and mv75SwDD
SHOW: | | - or go back to the newest paste.
1
#SingleInstance force
2
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
3
4-
EXECUTEABLE_PATH=
4+
EXECUTABLE_PATH=
5-
EXECUTEABLE_NAME=
5+
EXECUTABLE_NAME=
6-
EXECUTEABLE_TIMEOUTMSG=
6+
EXECUTABLE_TIMEOUTMSG=
7
8
; Config file is the script name with .ini instead of .ahk or .exe
9
SplitPath, A_ScriptName,,,, ConfigFile
10
ConfigFile := ConfigFile . ".ini"
11
gConfigIsNew := false
12
if (!FileExist(ConfigFile))
13
	gConfigIsNew := true
14
15
IniReadWrite(file, category, key, defaultValue) {
16
	IniRead, output, %file%, %category%, %key%
17
	if (output = "ERROR" or !output) {
18
			IniWrite, %defaultValue%, %file%, %category%, %key%
19
			output := defaultValue
20
	}
21
	return output
22
}
23
24
;---------------------------------------------;
25
; Read config options from the INI file here. ;
26
;---------------------------------------------;
27
28
;---------------------------------------------;
29
30
; Open the INI file to be edited by the user, if this is the first time the script has been run
31
if (gConfigIsNew)
32
	Run, %ConfigFile%
33
34-
Process, Exist, EXECUTEABLE_NAME
34+
Process, Exist, %EXECUTABLE_NAME%
35-
if (!ErrorLevel) { ; if the executeable isn't already running
35+
if (!ErrorLevel) { ; if the executable isn't already running
36-
	Run, EXECUTEABLE_PATH ; launch the executeable
36+
	Run, %EXECUTABLE_PATH% ; launch the executable
37
	loop {
38-
		Process, Wait, EXECUTEABLE_NAME, 120 ; wait for it to load
38+
		Process, Wait, %EXECUTABLE_NAME%, 120 ; wait for it to load
39-
		if (ErrorLevel) ; if the executeable is running
39+
		if (ErrorLevel) ; if the executable is running
40
			break ; break loop
41
		; If it took more than two minutes, ask the user if they wish to continue waiting
42-
		MsgBox, 0x40034, Timed Out, %EXECUTEABLE_TIMEOUTMSG% Continue waiting?
42+
		MsgBox, 0x40034, Timed Out, %EXECUTABLE_TIMEOUTMSG% Continue waiting?
43
		IfMsgBox No
44
			ExitApp
45
	}
46
}
47
48
Hotkey, IfWinActive, ahk_exe %EXECUTABLE_NAME%
49
;-----------------------------------------;
50
; Place dynamically created hotkeys here. ;
51
;-----------------------------------------;
52
53
;-----------------------------------------;
54-
Process, WaitClose, EXECUTEABLE_NAME ; wait for the executeable to close
54+
Hotkey, IfWinActive
55
56
;-------------------------------;
57
; Place auto-execute code here. ;
58
;-------------------------------;
59
60
;-------------------------------;
61
62
Process, WaitClose, %EXECUTABLE_NAME% ; wait for the executable to close
63
ExitApp ; then exit app
64
65
;------------------------------------;
66
; Place hotkeys and other code here. ;
67
;------------------------------------;