Como fechar todos os scripts em execução e reiniciá-los mais tarde?

0

Para atualizar o AutoHotkey, todos os scripts em execução devem ser fechados. Os processos AutoHotkey podem ser eliminados com um script simples (veja abaixo), mas não sei como reiniciar os mesmos à vontade. Atualmente eu reinicio meu computador após a atualização (para iniciar os scripts AHK na pasta de inicialização do Windows).

O Windows aparentemente não permite o lançamento de vários arquivos simultaneamente. Como tenho dezenas de scripts do AutoHotkey ativados, iniciá-los manualmente não é viável.

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

Loop
{
#Singleinstance force
Process, Close, Autohotkey.exe
}
    
por user598527 08.06.2018 / 18:22

1 resposta

1

; FileDelete, %A_Desktop%\my running scripts.ini

; Get a list of all running AHK scripts:
DetectHiddenWindows, ON
WinGet, id, list, ahk_class AutoHotkey 
Loop, %id% ; retrieves the  ID of the specified windows, one at a time
{
    this_ID := id%A_Index%
    WinGetTitle, title, ahk_id %this_ID%    
    SkriptPath := RegExReplace(title, " - AutoHotkey v" A_AhkVersion )
    If InStr(SkriptPath, A_ScriptFullPath)
        continue
    ; Store the path of each running script in an INI-file and terminate it:
    IniWrite, %SkriptPath%'n, %A_Desktop%\my running scripts.ini, my_running_scripts
    WinClose, %SkriptPath% ahk_class AutoHotkey 
}
; Run %A_Desktop%\my running scripts.ini

; Create a new script in the startup folder that starts the same scripts after rebooting:
FileAppend, 
(
    IniRead, my_running_scripts, '%A_Desktop'%\my running scripts.ini, my_running_scripts
    Loop, parse, my_running_scripts, ''n
        Run '%A_LoopField'%
    ; FileDelete, '%A_ScriptFullPath'%
    ExitApp
)
, %A_Startup%\my running scripts.ahk
ExitApp
return

Substitua %A_Startup% por %A_Desktop% se você quiser reiniciar os scripts manualmente na sua área de trabalho.

    
por 09.06.2018 / 00:19

Tags