А также плюс, то что код будет не ввиде переменной, а в обычном виде. Всё включая Main: это стандартная шапка в которой не надо разбиратся, далее пишем сколько угодно меток. При закрытии или перезагрузке основного скрипта, остальные тоже закрываются моментально.
#NoTrayIcon
#SingleInstance Off
WM_CloseMyScript := DllCall("RegisterWindowMessage", "Str", "CloseAHKScripts")
OnMessage(WM_CloseMyScript, "WM_CloseMyScript")
OnExit, CloseAll
Param = %1%
If Param =
PostMessage, WM_CloseMyScript, 0, A_ScriptHWND,, ahk_id 0xFFFF
GoTo % IsLabel(Param) ? Param : "Main"
WM_CloseMyScript(wParam, lParam) {
If (lParam != A_ScriptHWND) {
OnExit
ExitApp
}
return true
}
Esc::
CloseAll:
PostMessage, WM_CloseMyScript, 0, A_ScriptHWND,, ahk_id 0xFFFF
ExitApp
Main:
Menu, Tray, Icon
Loop
{
ToolTip % A_Index "|" A_TickCount
If !Mod(A_Index, 100) ; тут любое условие
{
Process, Exist, %Pid_Send% ; это для того чтобы не запустить, если скрипт ещё не закрылся. Если оно конечно нужно.
If (Pid_Send = "" || !ErrorLevel)
Run, %A_ScriptFullPath% Send, , , Pid_Send
}
}
Send:
Send 9
sleep, 500
Send 8
sleep, 500
Send 7
sleep, 300
Send 6
sleep, 100
Send 5
OnExit
ExitApp
С командой GuiControl конечно не выйдет, но можно в параметрах ком строки передавать хэндлы нужных контролов, и делать тоже самое командами Control*.
Если во вторичных скриптах перед ExitApp не прописать OnExit, то все скрипты будут закрыты, что в некоторых случаях может быть удобно.
По вопросам возмездной помощи пишите на
E-Mail: serzh82saratov@mail.ru Telegram:
https://t.me/sergiol982Win10x64
AhkSpy,
Hotkey,
ClockGui