Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка процесса с перезапуском

Ответить
Настройки темы
VBS/WSH/JS - Проверка процесса с перезапуском

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет.Ни как не могу найти относительно простой и понятный вариант проверки процесса в диспетчере задач и дальнейшее его закрытие.
В общем нужно такое решение:
Есть процесс рабочий firefox-01.exe
Нужно чтоб при запуске VBS проверял сначала наличие этого процесса,в случае если процесс есть то убивал его,и через сек 5-7 перепроверил 1 раз убился ли процесс или нет,если процесс убит то запустить программу.
Заранее благодарю)Нужно срочно,скину на сижки деньжат кто напишет оптимальный вариант)))

Отправлено: 12:38, 11-09-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Там искать нечего.
Код: Выделить весь код
Option Explicit

Dim objSWbemObjectEx


For Each objSWbemObjectEx In WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'firefox-01.exe'")
	objSWbemObjectEx.Terminate
Next

WScript.CreateObject("WScript.Shell").Run """C:\Мои проекты\firefox-01.exe""", 1, False

WScript.Quit 0

Отправлено: 13:02, 11-09-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Там искать нечего.
Код: »
А можно сделать так:
Работает процесс,я запускаю скрипт vbs он ждет 3 сек перед проверкой на существование процесса,проверяет процесс если процесс работает то его убивает и ждет 5 сек,после перепроверяет и в случае если процесса нет запускает через 5 сек программу

Отправлено: 13:21, 11-09-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата maloibtc:
он ждет 3 сек перед проверкой на существование процесса »
Зачем?

Цитата maloibtc:
если процесс работает »
А если нет?

Цитата maloibtc:
и ждет 5 сек,после перепроверяет »
Зачем ждать и зачем перепроверять?

Цитата maloibtc:
запускает через 5 сек »
Зачем через пять секунд?

Отправлено: 13:53, 11-09-2016 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата maloibtc:
он ждет 3 сек перед проверкой на существование процесса »
Зачем?
Цитата maloibtc:
если процесс работает »
А если нет?
Цитата maloibtc:
и ждет 5 сек,после перепроверяет »
Зачем ждать и зачем перепроверять?
Цитата maloibtc:
запускает через 5 сек »
Зачем через пять секунд? »
Дело в том что если одновременно запускаются 30-40 процессов или закрываются,остатки нескольких процессов уходят в фон и далее не гаятся.Так же задержка нужна для относительного баланса производительности и уменьшения нагрузки на процессор при запуске firefox.И при такой ситуации несколько браузеров не запускаются и выскакивает сообщение что данная программа уже запущена

Отправлено: 14:02, 11-09-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


В итоге пришли к тому, с чего бы следовало начинать.

Опишите Вашу задачу.

Отправлено: 14:04, 11-09-2016 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
В итоге пришли к тому, с чего бы следовало начинать.
Опишите Вашу задачу. »
Извиняюсь))
У меня работает 130-150 firefox с imacros скриптами.
При завершении цикла imacros вызывает VBS где идет завершение процесса с последующим запуском firefox со скриптом imacros.
Скрипт vbs выглядит так :
Код: Выделить весь код
Dim PatchJs, PatchFol, objShell
PatchJs = "01"
PatchFol = "tk"
Set objShell = CreateObject("Wscript.Shell")
WScript.Sleep 3000
objShell.Run "taskkill /IM firefox-"+PatchFol+"-"+PatchJs+".exe", 0, true
WScript.Sleep 13000
objShell.run """C:/ff/"+PatchFol+"-"+PatchJs+"/FirefoxPortable.exe""file:///C:/loader.html?m="+PatchFol+"/"+PatchJs+".js", 0, false
WScript.Sleep 3000
Set objShell=Nothing
Очень часто если нет задержек в VBS,firefox полностью не завершается а уходит в фон процесс (Для этого мне и нужна повторная проверка существования процесса),и когда VBS запускает firefox то пишется сообщение что программа уже запущенна.

Отправлено: 14:12, 11-09-2016 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата maloibtc:
где идет завершение процесса »
Неа. У Вас идёт «просьба» к приложению Firefox «завершить себя». И завершение приложения (не принудительное) может занимать много времени, особенно, если внутри него в этот момент крутится куча JScript-скриптов. Или очень много времени. Или не завершать вообще — если приложение тупо, на 100% занято обработкой.

Метод «.Terminate()» же класса «Win32_Process» не обращается к приложению, а всегда принудительно «снимает» процесс приложения.

Вас устроит принудительное завершение процесса Firefox (что не есть хорошо для профиля в долгосрочной перспективе) или же необходимо обычное, «мягкое» завершение приложения? Если выбираете последнее — всегда ли завершается при этом приложение (при условии, скажем, бесконечного ожидания завершения)?

Отправлено: 14:58, 11-09-2016 | #8


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Неа. У Вас идёт «просьба» к приложению Firefox «завершить себя». И завершение приложения (не принудительное) может занимать много времени, особенно, если внутри него в этот момент крутится куча JScript-скриптов. Или очень много времени. Или не завершать вообще — если приложение тупо, на 100% занято обработкой.
Метод «.Terminate()» же класса «Win32_Process» не обращается к приложению, а всегда принудительно «снимает» процесс приложения.
Вас устроит принудительное завершение процесса Firefox (что не есть хорошо для профиля в долгосрочной перспективе) или же необходимо обычное, «мягкое» завершение приложения? Если выбираете последнее — всегда ли завершается при этом приложение (при условии, скажем, бесконечного ожидания завершения)? »
А что посоветуете?
Сделать остановку js и после вызывать VBS?

Отправлено: 15:09, 11-09-2016 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка процесса с перезапуском

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Проверка наличия процесса botkin1 Скриптовые языки администрирования Windows 0 12-05-2016 07:33
CMD/BAT - [решено] Проверка процесса Hancog Скриптовые языки администрирования Windows 45 29-09-2014 15:42
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
CMD/BAT - [решено] Проверка наличия процесса BUSTED Скриптовые языки администрирования Windows 7 26-08-2012 19:28
CMD/BAT - Проверка на наличие процесса tazik9 Скриптовые языки администрирования Windows 0 23-01-2011 16:56




 
Переход