Проверьте, запущен ли скрипт ahk (autohotkey)

Я работаю над сценарием autohotkey, и я хотел знать, можете ли вы проверить, запущен ли в данный момент другой скрипт.

Я узнал, что это то, что вам нужно сделать, чтобы закрыть запущенный скрипт:

DetectHiddenWindows, On
WinClose, %pathToScript% ahk_class AutoHotkey

Поэтому я подумал, что это то, что вам нужно сделать, чтобы проверить, работает ли другой скрипт:

DetectHiddenWindows, On
IfWinActive, %pathToScript% ahk_class AutoHotkey
{
    //code to do when script is active
}

Однако это не работает. Вы можете помочь мне ?


person Jelle de Fries    schedule 19.03.2012    source источник
comment
Ответ тоже заключался в том, чтобы использовать не ifWinActive, а ifWinExist   -  person Jelle de Fries    schedule 19.03.2012


Ответы (2)


[проверить это]

1 — Создайте случайный скрипт, который будет работать, но будет скрыт, например:

F::
Msgbox "running..." ; to test if it's ok or already closed.

2 - Теперь вы создаете сценарий, чтобы проверить, что вы хотите сделать. Мой тест может закрывать скрытые скрипты по их именам:

pathToScript = %A_ScriptDir%\teste.exe

DetectHiddenWindows, On
IfWinExist, %pathToScript%
{
    WinWait, %pathToScript%,
    IfWinNotActive, %pathToScript%, , WinActivate, %pathToScript%,
    WinWaitActive, %pathToScript%,

    WinClose, %pathToScript% ahk_class AutoHotkey
    MsgBox "OK"
}

Надеюсь, это может помочь вам...

person Rafael B Barbosa    schedule 21.12.2012

Я не уверен, почему вы хотите это сделать, но что-то полезное, что у меня есть в моем скрипте, это

Reload

который перекомпилирует и перезапустит сохраненный файл скрипта. См. раздел обновить информацию о документе.

person Justin Harris    schedule 06.08.2012