1 (изменено: Gh0sTG0, 2021-10-09 14:16:06)

Тема: AHK: GUI как одной кнопкой отменить выполнение предыдущего нажатия?

Добрый день.
Есть программа, в ней гуй с кнопкой (да, одной единственной, не хочу добавлять вторую).
По нажатию кнопки запускается сотня строк кода, завершающихся:


	Run, %something%
	WinWait, ahk_exe that_thing.exe
	WinMove, ahk_exe that_thing.exe,, 0, 0, 1000, 1000
	Send...
	Send...
	Return

Собственно, иногда это that_thing не запускается и программа зависает на winwait'е до тех пор пока я ее не рестартну.
Однако, вопрос не по that_thing'у, а по ahk:
Возможно ли как то сделать так, чтобы алгоритм "нажатие кнопки-WinWait" превратить в алгоритм "нажатие кнопки-WinWait-нажатие кнопки(отменяющее WinWait и перезапускающее код)-WinWait-..."?

2 (изменено: __Михаил__, 2021-10-09 15:08:25)

Re: AHK: GUI как одной кнопкой отменить выполнение предыдущего нажатия?

Думаю, можно убрать 'WinWait' и заменить на цикл, в котором будет проверка запуска нужной программы. Через некоторое кол-во неудач, выход из цикла.

Хотя нет, неверный подход, в справке пишут:

WinWait [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]

Seconds Время ожидания в секундах (может быть выражением). По истечении этого времени ErrorLevel устанавливается в 1. Оставьте параметр пустым, чтобы ждать неопределённо долго. Значение 0 означает то же, что 0.5.

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

3

Re: AHK: GUI как одной кнопкой отменить выполнение предыдущего нажатия?

__Михаил__
Ага, спасибо. Значит, таймер в винвейте. Чего то я его проглядел.