|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Запуск process2 если process1 уже запущен и остановка. |
|
Любой язык - Запуск process2 если process1 уже запущен и остановка.
|
Новый участник Сообщения: 2 |
Товарищи, помогите пожалуйста, не могу решить задачу.
В чем заключается задача: ClientStarter.exe - Программа за которой нужно следить. start.exe - Программа запускает с параметрами "ffmpeg.exe" ffmpeg.exe - процесс который, должен работать параллельно ClientStarter4.exe Если работает ClientStarter.exe, нужно запустить файл start.exe (В свою очередь который запустит с параметрами ffmpeg.exe) Если не работает ClientStarter.exe убить процесс start.exe и ffmpeg.exe -------------------------------------------------------------------- Пробовал такой .bat, но проблема в том что у меня получаются дубли. Я думал сделать 2 таких .bat, чтобы они друг другу помогали, но это слишком сложно. @echo off SETLOCAL EnableExtensions set EXE=ClientStarter.exe FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND start "D:\not-running\stop.exe" goto FIN :FOUND start "D:\running\start.exe" :FIN pause Даже если это vbs, ps1 или любой другой скрипт. Спасибо за ранее всем. |
|
Отправлено: 13:41, 14-11-2019 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 14:27, 14-11-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать qo_op,
Цитата qo_op:
Цитата qo_op:
Цитата qo_op:
|
|||
------- Отправлено: 16:26, 14-11-2019 | #3 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать megaloman, Изменил тему, добавил информацию
|
Последний раз редактировалось qo_op, 14-11-2019 в 21:33. Отправлено: 16:31, 14-11-2019 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать vbs. Не понимаю, как стартует третий екзешник, поэтому его старт не организовавал никак
Exe1 = "winamp.exe" Exe2 = "Notepad.exe" Exe3 = "Calc.exe" Path1 = "C:\Program Files\Winamp" Path2 = "C:\Windows\System32" Set WMI = GetObject("winMgmts:") nExe1 = CountProc(WMI, Exe1, Proc1) nExe2 = CountProc(WMI, Exe2, Proc2) nExe3 = CountProc(WMI, Exe3, Proc3) If Not (nExe1 = 1 And nExe2 = 1 And nExe3 = 1) Then Call Killer(Proc2, nExe2) Call Killer(Proc3, nExe3) With CreateObject("WScript.Shell") If nExe1 <> 1 Then Call Killer(Proc1, nExe1) .Exec Path1 + "\" + Exe1 WScript.Sleep 5000 End If .Exec Path2 + "\" + Exe2 End With End If ' ================================== Function CountProc(WMI, Exe, Processes) On Error Resume Next Err.Number = 0 Set Processes = WMI.ExecQuery("SELECT * FROM Win32_Process Where Name=""" + Exe + """") If Err.Number = 0 Then CountProc = Processes.Count Else CountProc = -1 End If On Error GoTo 0 End Function Sub Killer(Processes, N) If N < 1 Then Exit Sub For Each Process In Processes Process.Terminate Next End Sub |
|
------- Отправлено: 21:55, 14-11-2019 | #5 |
Забанен Сообщения: 53
|
типа того...
@echo off SETLOCAL EnableExtensions cd /d "%~dp0" chcp 866 >nul set "cs=ClientStarter.exe" set "strt=D:\running\start.exe" tasklist | findstr /i "%cs%" && set proc=exist||set proc=no >nul if /i "%proc%"=="exist" ( start "" "%strt%" ) else ( goto :killPrc) exit :killPrc rem убить start.exe и ffmpeg.exe TASKKILL /IM start.exe TASKKILL /IM ffmpeg.exe pause exit |
Отправлено: 20:05, 15-11-2019 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Автоматический запуск CMD-файла если не запущен процесс | kirillius | Скриптовые языки администрирования Windows | 8 | 27-10-2016 14:48 | |
CMD/BAT - Убить процесс, только если он запущен | Sisin | Скриптовые языки администрирования Windows | 34 | 28-09-2016 10:58 | |
CMD/BAT - Закрытие после выполнения и проверка если запущен | snipersu28 | Скриптовые языки администрирования Windows | 7 | 13-08-2016 18:46 | |
CMD/BAT - Удаление пераметра реестра если bat файл запущен в Безопасном режиме | Sfero_ID | Скриптовые языки администрирования Windows | 6 | 05-06-2013 15:25 | |
Не работает WinWaitActive если скрипт запущен из Windows sheduler | Kubik | AutoIt | 0 | 11-02-2011 16:28 |
|