|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Автоматический запуск процесса, если он закрыт. |
|
Любой язык - [решено] Автоматический запуск процесса, если он закрыт.
|
Новый участник Сообщения: 31 |
Прошу помощи, необходим скрипт, который бы следил за процессом и перезапускал, если он закроется/вылетит.
|
|
Отправлено: 07:35, 23-12-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Option Explicit
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim lngProcessID
strComputer = "."
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Do
If objSWbemServicesEx.Get("Win32_Process").Create("c:\windows\system32\notepad.exe", "c:\", Nothing, lngProcessID) = 0 Then
objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.Handle = '" & CStr(lngProcessID) & "'").NextEvent
Else
WScript.Echo "Can't execute [%SystemRoot%\system32\notepad.exe]."
WScript.Quit 1
End If
Loop
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
WScript.Quit 0
|
Отправлено: 08:51, 23-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Огромное спасибо, но можно ли сделать отслеживание было по PID или имени процесса? Проблема в том, что процесс, за которым нужно следить и процесс, который нужно запустить в случае закрытия первого отличаются. Простите, в первом сообщении неправильно выразился.
|
Отправлено: 01:26, 26-12-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Option Explicit Dim strComputer Dim objSWbemLocator Dim objSWbemServicesEx Dim lngProcessID strComputer = "." Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2") If objSWbemServicesEx.Get("Win32_Process").Create("c:\windows\system32\notepad.exe", "c:\", Nothing, lngProcessID) = 0 Then objSWbemServicesEx.ExecNotificationQuery( _ "SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _ "WHERE TargetInstance ISA 'Win32_Process' AND " & _ "TargetInstance.Handle = '" & CStr(lngProcessID) & "'").NextEvent If Not objSWbemServicesEx.Get("Win32_Process").Create("c:\windows\system32\calc.exe", "c:\", Nothing, lngProcessID) = 0 Then WScript.Echo "Can't execute [%SystemRoot%\system32\calc.exe]." WScript.Quit 2 End If Else WScript.Echo "Can't execute [%SystemRoot%\system32\notepad.exe]." WScript.Quit 1 End If Set objSWbemServicesEx = Nothing Set objSWbemLocator = Nothing WScript.Quit 0 |
Отправлено: 05:15, 26-12-2013 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Автоматический запуск bat с флешки | k0mar | Скриптовые языки администрирования Windows | 5 | 27-10-2013 14:23 | |
2008 - Автоматический запуск VirtualBox | nikollor | Windows Server 2008/2008 R2 | 2 | 13-03-2013 16:28 | |
Службы - Сборщик данных - автоматический запуск | Analog | Microsoft Windows 7 | 8 | 14-02-2011 12:17 | |
Разное - Автоматический запуск принтера | Fagundas | Microsoft Windows 2000/XP | 3 | 12-12-2008 20:42 | |
Автоматический запуск приложения в терминальной сессии | Nerian | Microsoft Windows NT/2000/2003 | 8 | 10-12-2008 19:56 |
|