Page 1 of 1

Закрытие/открытие программ

Posted: 19 Sep 2017, 19:32
by AlexOsscr
Здравствуйте.
Подскажите пожалуйста как сделать скрипт/макрос, он должен:
проверить запущена ли программа "А" если ДА то закрыть(если нет идем дальше), ожидание 1 секунда и после этого проверить запущена ли программа "Б" если нет то запустить(если запущена ничего не делать) ждем 3 минуты и повторяем все заново и так бесконечно пока не отключу.
Заранее спасибо.

Re: Закрытие/открытие программ

Posted: 20 Sep 2017, 18:58
by A_AhkUser

Code: Select all

Process, Exist, А ; проверить запущена ли программа "А"
if (ErrorLevel) ; ErrorLevel стоит 1 (значит "да") если процесс существует - 0 ("нет") в противном случае
{
	PostMessage, 0x112, 0xF060,,, ahk_exe A.exe ; болшинство программ закрываются при закритии главного окна
	; или порезче...
	; Process, Close, А ; закрыть программу "А"
ExitApp
}
; если нет идем дальше...
sleep, 1000 ; ожидать 1 секунду (1000ms)
SetTimer, proveryat, % (triMinuty:=1000*60*3) ; запустить подпрограмму с промежутком в три минуты
Gosub, proveryat
return

proveryat: ; подпрограмма "proveryat"
Process, Exist, Б
if not (ErrorLevel) {
	run % Б.exe ; запустить программу "Б"
ExitApp
}
return
документация (по-английски):
. SetTimer
. Process (command)
. sleep
. WinCLose

Re: Закрытие/открытие программ

Posted: 10 Apr 2018, 10:28
by klipson
Здравствуйте. Кому не сложно, можете набросать код с такой логикой.
Проверять каждые 3 минуты.
Если Программа(А) "Не отвечает" или "Закрылась", то запускаем Ярлык(А) с рабочего стола. Ждем 20сек. Если Программа(А) работает, то запускаем Ярлык(Б) (либо .exe файл). Ждем 10сек. Выбираем окно Программы(Б), если не выбрано(это не обязательно, если сложно). Нажать Enter. Ждем 2сек. Нажать Tab. Ждем 500ms. Нажать Tab. Ждем 500ms. Нажать Enter. Ждем 5сек. Нажать Enter. Ждем 40сек. Нажать 6 раз Tab с небольшим интервалом 50ms. Нажать Enter.