Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 08.07.2016, 12:30   #1 (permalink)
stars1981
Новичок
 
Регистрация: 08.07.2016
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Bat-файл для мониторинга работы exe-файла

Доброго времени суток!!! Помогите пожалуйста с написанием батника. Нужно: 1. запустить exe файл(это имеется)
2. И т.к Firefox прекращает свою работу(при определённом кол-ве занятой оперативной памяти), то нужно снова запустить этот же экземпляр Firefox

Я предполагаю что нужно при запуске exe файла(FirefoxLikesrock.exe) запоминать id запустившегося процесса(если это возможно конечно) и в дальнейшем мониторить работу этого процесса по id, как токлько процесса нет в работе, запускать exe по новой.

Я в кодинге не силён (только учусь на примерах), помогите пожалуйста решить такую задачу.

Заранее благодарен!
stars1981 вне форума   Ответить с цитированием

Старый 08.07.2016, 12:30
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Советую вам обратить внимание на эти темы, у них очень много схожего с вашей

Чтение чисел из файла, операции с ними и запись результата в файл.
Подскажите,как можно снять зашифровку с файла(до этого файл был на др ОС)
Сообщение при открытии файла World: «Файл используется user. Сделать копию?»
Сообщение «Файл используется user. Cделать копию?» при открытии любого файла в Ворд
Ошибка копирования файла: Исходный файл поврежден.

Старый 08.07.2016, 13:11   #2 (permalink)
Гризлик
Мимо проходил
 
Аватар для Гризлик
 
Регистрация: 06.04.2008
Адрес: Голицыно (МО)
Сообщений: 12,046
Сказал(а) спасибо: 10
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 8510
По умолчанию

Я конечно в кодинге тоже не силен. Но выглядеть это будет как-то так помоему (вместо звездочек имя файла вписать)
Код:
@echo off
:Run
tasklist |find "*имя файла*"
if errorlevel 1 goto NoRun
goto Run
:NoRun
start * полный путь к файлу для запуска*
goto Run
П.С. Правда в этом варианте нужный файл будет запускаться всегда. Когда нужно и ненужно Как это исправить незнаю.
Гризлик вне форума   Ответить с цитированием
Старый 08.07.2016, 13:43   #3 (permalink)
stars1981
Новичок
 
Регистрация: 08.07.2016
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Гризлик Посмотреть сообщение
Когда нужно и ненужно
В смысле? Даже если этот exe уже запущен?
А вообще, спасибо, попробую сейчас.
П.С. дело ещё в том, что процессов Firefox 5 штук работает и нужно запускать тока тот, который был запущен ЭТИМ батником....
stars1981 вне форума   Ответить с цитированием
Старый 08.07.2016, 13:58   #4 (permalink)
Гризлик
Мимо проходил
 
Аватар для Гризлик
 
Регистрация: 06.04.2008
Адрес: Голицыно (МО)
Сообщений: 12,046
Сказал(а) спасибо: 10
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 8510
По умолчанию

Цитата:
Сообщение от stars1981 Посмотреть сообщение
Даже если этот exe уже запущен?
Нет, если процесс окажется запущенным то он ничего делать не будет. В том смысле что если вы сами захотите закрыть Мозилу то этот батник её заново запустит независимо от того нужно вам это или нет. Ну если только перед закрытием мозилы сам батник "убивать"
Гризлик вне форума   Ответить с цитированием
Старый 08.07.2016, 14:12   #5 (permalink)
stars1981
Новичок
 
Регистрация: 08.07.2016
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Гризлик Посмотреть сообщение
Я конечно в кодинге тоже не силен. Но выглядеть это будет как-то так помоему (вместо звездочек имя файла вписать)


П.С. Правда в этом варианте нужный файл будет запускаться всегда. Когда нужно и ненужно Как это исправить незнаю.
Цитата:
Сообщение от Гризлик Посмотреть сообщение
Нет, если процесс окажется запущенным то он ничего делать не будет. В том смысле что если вы сами захотите закрыть Мозилу то этот батник её заново запустит независимо от того нужно вам это или нет. Ну если только перед закрытием мозилы сам батник "убивать"
Уже понял. Так не пойдёт, т.к. процессы ферифокса все одноимённы и постоянно хоть один да работает, нужно как-то, что бы батник запоминал id запускаемого им же процесса (т.к. при каждом запуске одного и того же exe id меняется) и уже по id смотрел, запущен нужный процесс, если нет то запускал его...
stars1981 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 08.07.2016, 14:35   #6 (permalink)
Гризлик
Мимо проходил
 
Аватар для Гризлик
 
Регистрация: 06.04.2008
Адрес: Голицыно (МО)
Сообщений: 12,046
Сказал(а) спасибо: 10
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 8510
По умолчанию

Нашел в интернете. На примере Калькулятора. Как я понял даный батник запускает процесс запоминает его PID и потом через определенное время его закрывает

Код:
@echo off
setlocal

set "wmic=wmic process call create "calc" | findstr "ProcessId""
for /f "tokens=2 delims==;" %%i in (' "%wmic%" ') do set "pid=%%i"

echo %pid%

timeout /t 3
taskkill /pid %pid%
Осталось только под ваш случай подредактировать его и мне кажется подойдет.
Гризлик вне форума   Ответить с цитированием
Старый 08.07.2016, 14:46   #7 (permalink)
stars1981
Новичок
 
Регистрация: 08.07.2016
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое!!! Думаю пойдёт. Сейчас с редактированием помучаюсь, думаю вечером "победю" и отпишусь о результате.
stars1981 вне форума   Ответить с цитированием
Старый 08.07.2016, 16:24   #8 (permalink)
stars1981
Новичок
 
Регистрация: 08.07.2016
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Гризлик Посмотреть сообщение
Осталось только под ваш случай подредактировать его и мне кажется подойдет.
По идее работает, но похоже нужно и у дочернего процесса id запоминать (не знаите как?). Попробовал с килл, процес с id найденым батником убивает, но бораузер как работал так и продолжает работать...
stars1981 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:20.


Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.