Что нового

Завершение AutoIT после выхода из программы

Maximill

Новичок
Сообщения
16
Репутация
0
Приветствую всех гуру! Я не мастер AutoIT, поэтому самостоятельно вопрос решить не смог (справка, гугел).
Вопрос: "Как сделать (какая функция), чтобы после выхода из "определенной" программы, программа AutoIt (скрипт) сама завершалась?

Поясню. У меня есть программа, работе которой "мешает" блокировка экрана, которую убрать нельзя (безопасность).
Я решил сделать так: написал скрипт, который включает клавишу капслок через определенный промежуток времени, чем блокирует "спячку" ПК. Подвязал на один ярлык запуск нужной программы и компилированный в ехе скрипт AutoIt, т.е. нажимаю на ярлык, сначала запускается нужная программа а потом программа AutoIt. После завершения программы каждый раз приходится выключать скрипт AutoIt. Как сделать так, чтобы когда нажимаешь на выход из программы (крестик, убиваешь процесс) скрипт AutoIt самостоятельно завершался?

Я так понимаю, можно добавить функцию с процессом программы в мой код:
Код:
Run("C:\Program Files\Siber Systems\GoodSync\GoodSync-v10.exe")
While 1
ProcessWait("GoodSync-v10.exe")
Send("{CAPSLOCK}")
Sleep(60000)
WEnd


Извиняюсь за несуразную тему!
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Нужно добавлять в цикл проверку, что процесс существует.
Код:
Для этого есть оператор If и функция ProcessExists, а что бы выйти из Autoit есть Exit

Смотрите примеры к функциям, разбирайтесь.
 

filautdinov

Знающий
Сообщения
96
Репутация
9
как то так:
Код:
Run("C:\Program Files\Siber Systems\GoodSync\GoodSync-v10.exe")

While 1
	Sleep(1)
	_ChekProcess()
WEnd 

Func _ChekProcess()
	If ProcessExists("GoodSync-v10.exe") Then 
	Else
		Send("{CAPSLOCK}")
		Sleep(60000)
		Exit
	EndIf
EndFunc
 
Автор
M

Maximill

Новичок
Сообщения
16
Репутация
0
filautdinov
В вашем коде капслок включается когда процесс уже не существует, а мне капслок нужно включать во время работы программы. Прочитал справку, подправил код (перенес включение капслока, если процесс существует):
Код:
Run("C:\Program Files\Siber Systems\GoodSync\GoodSync-v10.exe")

While 1
    Sleep(1)
    _ChekProcess()
WEnd

Func _ChekProcess()
    If ProcessExists("GoodSync-v10.exe") Then
	  Send("{CAPSLOCK}")
	  Sleep(10)
Else
   Exit
    EndIf
EndFunc

Огромное спасибо filautdinov,inververs
 
Верх