|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Мониторинг процесса в диспетчере задач и запуск его в случае отсутствия |
|
|
VBS/WSH/JS - [решено] Мониторинг процесса в диспетчере задач и запуск его в случае отсутствия
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Добрый день.
есть задача добавить к загрузке скрипт который будет висеть в памяти и мониторить присутствие процесса - а в случае его закрытия "случайно" - его запуск. процесс 'iexplore.exe' с ключом '-k' вмешательство пользователей в диспетчер задач отсутствует. Самому знаний возможно хватило бы что бы скопировать нужное из др. скриптов и связать в один скрипт, но на это уйдет время, а его увы нет. |
|
Отправлено: 12:12, 06-12-2011 |
Ветеран Сообщения: 1309
|
Профиль | Отправить PM | Цитировать Iska,
но проверки то не будет, запущен ли процесс и как сказал Fantastish, накладываться будет каждый раз проверил запуск поверх запущенного процесса, главное окно тогда вылазит поверх всех окон. |
------- Отправлено: 13:07, 29-12-2015 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Wu-Tang:
Цитата Wu-Tang:
|
||
Отправлено: 15:53, 29-12-2015 | #22 |
Ветеран Сообщения: 1309
|
Профиль | Отправить PM | Цитировать Iska,
у меня накладывается, могу видео записать. нет, процесс будет запускаться не первый раз, тк первый это из автозагрузки, а потом должен будет запускаться, если из него выйдут случайно. |
------- Отправлено: 21:13, 29-12-2015 | #23 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Wu-Tang, так, теперь ясно. Насколько я понимаю, само приложение даже при указании запускать в свёрнутом окне тупо разворачивает своё окно до нормального состояния, и тут ничего не поделаешь.
Могу тогда разве что предложить скрипт, который будет сам запускать процесс, следить за ним, и при его завершении — тут же запускать новый экземпляр приложения (т.н., «псевдо-неубиваемый» процесс). И Вы будете помещать в автозагрузку уже ярлык не на приложение, а на этот скрипт. Попробуйте так: Option Explicit Const SW_SHOWMINNOACTIVE = 7 Dim objSWbemObjectEx Dim lngProcessID With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") Set objSWbemObjectEx = .Get("Win32_ProcessStartup").SpawnInstance_ objSWbemObjectEx.ShowWindow = SW_SHOWMINNOACTIVE Do If .Get("Win32_Process").Create( _ """C:\Program Files (x86)\TeamViewer\TeamViewer.exe""", Null, objSWbemObjectEx, lngProcessID _ ) = 0 Then .ExecNotificationQuery( _ "SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _ "TargetInstance ISA 'Win32_Process' AND " & _ "TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent Else ' Не удалось запустить процесс Exit Do End If Loop Set objSWbemObjectEx = Nothing End With WScript.Quit 0 |
Отправлено: 03:45, 30-12-2015 | #24 |
Ветеран Сообщения: 1309
|
Профиль | Отправить PM | Цитировать Iska,
во, спасибо, все работает. |
------- Отправлено: 01:35, 06-01-2016 | #25 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Option Explicit Dim lngProcessID With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") Do If .Get("Win32_Process").Create( _ """C:\Program Files\Internet Explorer\iexplore.exe"" -k ""file://C:\WINDOWS\Help\Tours\htmlTour\default.htm""", _ Null, Null, lngProcessID) = 0 Then .ExecNotificationQuery( _ "SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _ "TargetInstance ISA 'Win32_Process' AND " & _ "TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent Else ' Не удалось запустить процесс Exit Do End If Loop End With WScript.Quit 0 или что бы проверялась одна прога (firefox) а запускалась другая (bat файл) Спасибо |
Последний раз редактировалось selftrips.ru, 01-08-2016 в 16:59. Отправлено: 16:52, 01-08-2016 | #26 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата selftrips.ru:
|
|
Отправлено: 18:26, 01-08-2016 | #27 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать |
Отправлено: 04:45, 04-08-2016 | #28 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать selftrips.ru, попробуйте так:
Option Explicit
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
Do
If .Get("Win32_Process").Create( _
"""C:\Program Files (x86)\Mozilla Firefox\firefox.exe"" imacros://run/?m=""main.js""", _
Null, Null, lngProcessID) = 0 Then
.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _
"TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent
Else
' Не удалось запустить процесс
Exit Do
End If
Loop
End With
WScript.Quit 0
P.P.S. С вышедшей вчера версией могут быть проблемы из-за начала ограниченной поддержки ей многопроцессного режима. |
Отправлено: 06:07, 04-08-2016 | #29 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Iska:
А еще более сложную задачу можно решить? Имеется 2 разных процесса firefox, каждый запущен со своего профиля и со своей строкой параметров, например: firefox.exe imacros://run/?m=macros1.js -p profil1 -no-remote firefox.exe imacros://run/?m=macros2.js -p profil2 -no-remote, где macros1.js, macros2.js imacrocs для каждого профиля. (вообще macros1 иmacros2 могут иметь одинаковые названия, так как каждый лежит в папке своего профиля) profil1 , profil2 название профилей. Можно организовать контроль "запущенности" именно firefox определенного профиля, и при его отсутствии запускать с нужного профиля с нужной строкой параметров (при этом может выполняьться firefox другого профиля) Если это возможно, как контролировать оба запуска? P.S. "Firefox уже есть в x64-версии." А что дает переход на 64 битную версию? |
|
Отправлено: 14:41, 04-08-2016 | #30 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - как понизить приоритет процесса если его нет в диспетчере задач? | Firiat | Microsoft Windows 2000/XP | 9 | 22-08-2010 00:58 | |
[решено] Проверка наличия процесса в Диспетчере задач | Hawk37 | AutoIt | 1 | 05-03-2010 16:37 | |
Любой язык - [решено] Скрипт который бы запускал 2 процесса и в случае убийства одного убивал бы и другой | iDrug | Скриптовые языки администрирования Windows | 7 | 12-10-2009 19:08 | |
CMD/BAT - [решено] Создание текстового файла при условии его отсутствия в папке | spilberg | Скриптовые языки администрирования Windows | 1 | 12-07-2009 15:58 | |
Разное - Мониторинг и трассировка процесса выключения системы. | medved26 | Microsoft Windows 2000/XP | 1 | 06-10-2008 15:34 |
|