1

Тема: AHK: Как правилько завершить скрипт?

Дело в том, что после компиляции и запуска скрипта в трее остаётся его иконка, т.е. они размножаются по числу запусков компилятора.
Я скрипт закрываю с помощью - Process, Close, ASOS.exe, но его значок в трее висит.

Как верно закрывать что бы он и из трея убрался?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

2

Re: AHK: Как правилько завершить скрипт?

Можно попробовать посылать окну скрипта какое-нибудь сообщение, которое он будет ловить по OnMessage и выполнять ExitApp. Или просто сообщение WM_CLOSE в окно скрипта.

3

Re: AHK: Как правилько завершить скрипт?

YMP пишет:

Можно попробовать посылать окну скрипта какое-нибудь сообщение, которое он будет ловить по OnMessage и выполнять ExitApp. Или просто сообщение WM_CLOSE в окно скрипта.

у этого скрипта нет окна, ну оно видимо где то есть, но я его не смог найти...
А ещё есть варианты?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

4

Re: AHK: Как правилько завершить скрипт?

У каждого скрипта есть окно, только оно скрыто.
При запуске командой Run можно получить id создаваемого процесса. Попробуй посылать Message по этому id

Run, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID]

5

Re: AHK: Как правилько завершить скрипт?

Проблема в том, что я закрываю уже запущенный скрипт и не знаю как получить OutputVarPID.

Да, окно есть, да оно скрыто, но командой

SetTitleMatchMode, 2
IfWinExist, %vWin%
  {

оно не определяется, т.е. IF не срабатывает.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

6

Re: AHK: Как правилько завершить скрипт?

Есть команда DetectHiddenWindows.
А PID любого процесса можно получить (по его имени) командой Process, Exist.

7 (изменено: Indomito, 2013-01-07 16:57:53)

Re: AHK: Как правилько завершить скрипт?

YMP пишет:

Есть команда DetectHiddenWindows.
А PID любого процесса можно получить (по его имени) командой Process, Exist.

спасибо не знал.
Сейчас поправлю.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

8 (изменено: Indomito, 2013-01-07 16:59:12)

Re: AHK: Как правилько завершить скрипт?

YMP Спасибо, наконец, то сработало

Вот такой вариант кода работает корректно

; Завершаем процесс ASOS.exe
DetectHiddenWindows, On
vWin := "ASOS.exe"
SetTitleMatchMode, 2
IfWinExist, %vWin%
  {
    vTxt := "Завершаем процесс ASOS.exe"
    GuiControl,, Msg, % vTxt
    Sleep, 1000
    WinClose
    ;Process, Close, %vWin%
    sleep 1500 ; Чуть подождём = 1,5 сек
  }

Весьма признателен, ещё раз спасибо.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro