1

Тема: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Добрый день.
Делаю простенький скрипт для фикса пары неудобств. Хочу, чтобы он самозакрывался при закрытии игры.
Помню, когда то где то читал как сделать самозакрыв правильно, но не могу найти .
PS или способа проще/правильнее, чем пихать цикл с проверкой ifwinnotexists нету?

2

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Хук окна?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

__Михаил__ Это как? Попробовал почитать, но чет так и не въехал как его воткнуть чисто на закрытие окна.

4

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Если лень разбираться то можно вот так сделать и не париться:

F2::
GroupAdd, Group, ahk_class Notepad ahk_exe notepad.exe
Loop{
 WinWait ahk_group Group
 WinWaitClose ahk_group Group
 ToolTip, % "Блокнот закрыт: " A_Index,-9999,-9999
}
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

__Михаил__
Ага, сяп. Про винвейты из головы вылетело. Там похоже именно так было.

6

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Ну еще как вариант чекать процесс и если его нет завершать работу скрипта.

Process,Exist,game.exe
If (ErrorLevel = "0")
{
ExitApp
}

7

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

andrey.a.polyakov.b2c

Тут вариант на один раз и то нужно запускать ещё как-то. Более универсальное решение есть?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Проще всего проверять существование процесса по таймеру.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Разве команды типа 'WinWait' не таймер использует по своей природе? Где-то в темах мелькало такое мнение. На ум приходит только делать таймер с более длительной задержкой чем стандартное решение.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

10

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Задержка может быть любой.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

teadrinker, я не стал писать очевидные вещи, а просто подсказал что можно проверять существование процесса.

12

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

__Михаил__, таймер, цикл. Любой вариант который вам нравится. Лучше использовать в работе таймер

SetTimer

13

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

andrey.a.polyakov.b2c пишет:

я не стал писать очевидные вещи

Кстати, ещё одна очевидная вещь — с цифрами кавычки использовать не нужно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Наверно так код более элегантно смотрится, особенно со скобками для одной команды.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

15

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

Да не, просто маркер нуба. Такой же, например, как неиспользование отступов.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Как сделать, чтобы при закрытии игры скрипт сам выгрузился?

__Михаил__ пишет:

особенно со скобками для одной команды

Ну скобки для одной команды ИМХО использовать вполне логично.
Так-как в последствии не придется их добавлять если понадобится вписать еще какое-либо условие.