1 (изменено: slavafedora, 2017-02-12 16:51:50)

Тема: AHK: Завершение процесса другого скрипта

Добрый день форумчане. Появился у меня тут такой вопрос, возможно ли с помощью одного скрипта закрыть другой активный скрипт? Не данный, а другой. Если запущено два.
Знаю есть такая функция работы с процессом как:

Numpad0::Process, close, process.exe

Эта функция не подходит к ahk, т.к там нужно указывать процесс приложения а его процесс один для всех скриптов запущенных.
Вопрос в другом как можно это реализовать, может кто-то сталкивался?

2

Re: AHK: Завершение процесса другого скрипта

Воспользуйтесь поиском по  словам "параметры командной строки" - найдёте в Коллекции примеры от Androgen по считыванию параметров другого процесса.

Или можно проще сделать. В каждом скрипте присвоить окну уникальный заголовок. Зная этот заголовок, выйти на PID процесса (командой WinGet).

3 (изменено: svoboden, 2017-02-12 16:44:31)

Re: AHK: Завершение процесса другого скрипта

Закрывает все скрипты, кроме запускаемого:

vk31:: ; 1

#Persistent

PID:=DllCall("GetCurrentProcessId")
query:="SELECT Handle FROM Win32_Process WHERE Caption='AutoHotkey.exe'"

If (oWMI:=ComObjGet("winmgmts:").ExecQuery(query)).Count>1
   For colItem In oWMI
      If colItem.Handle!=PID
         colItem.Terminate()

PID:=query:=oWMI:=""

return

4

Re: AHK: Завершение процесса другого скрипта

Заголовок приведён в соответствие запросу.

5 (изменено: teadrinker, 2017-02-12 16:36:00)

Re: AHK: Завершение процесса другого скрипта

ScriptFileName := "ScriptToBeClosed.ahk"   ; написать название файла целевого скрипта
SetTitleMatchMode, 2
DetectHiddenWindows, On
WinClose, % ScriptFileName " ahk_class AutoHotkey"
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: slavafedora, 2017-02-12 17:35:54)

Re: AHK: Завершение процесса другого скрипта

teadrinker
Спасибо, долго искал так и не нашел.
Ваш способ работает как нужно.

7

Re: AHK: Завершение процесса другого скрипта

teadrinker
Благодарю))))))))))))))