Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


idenchik1488@vk, с учётом изложенного Вами примерно так (WSH, VBScript):
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strProcess4Waiting
Dim strProcess4Running


Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim lngProcessID


strProcess4Waiting = "calc.exe"
strProcess4Running = "taskmgr.exe"

Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")

Do
	With objSWbemServicesEx.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = '" & strProcess4Waiting & "'")
		With .NextEvent.TargetInstance
			WScript.Echo "Detect starting process [" & .Name & "], PID: [" & .ProcessID & "]."
			
			For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcess4Running & "'")
				If objSWbemObjectEx.Terminate() = 0 Then
					WScript.Echo "Process [" & objSWbemObjectEx.Name & "], PID: [" & objSWbemObjectEx.ProcessID & "] terminated successfully."
				Else
					WScript.Echo "Process [" & objSWbemObjectEx.Name & "], PID: [" & objSWbemObjectEx.ProcessID & "] terminate failure."
				End If
			Next
			
			With objSWbemServicesEx.ExecNotificationQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Handle = '" & .ProcessID & "'")
				With .NextEvent.TargetInstance
					WScript.Echo "Detect finishing process [" & .Name & "], PID: [" & .ProcessID & "]."
					
					If objSWbemServicesEx.Get("Win32_Process").Create(strProcess4Running, Null, Null, lngProcessID) = 0 Then
						WScript.Echo "Process [" & strProcess4Running & "], PID: [" & lngProcessID & "] started successfully."
					Else
						WScript.Echo "Process [" & strProcess4Running & "] start failure."
					End If
				End With
			End With
		End With
	End With
Loop

Set objSWbemServicesEx = Nothing

WScript.Quit 0

В роли «process.exe» в примере выступает Калькулятор. Запускать скрипт посредством cscript.exe.

Отправлено: 12:58, 04-08-2017 | #7