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

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

Ветеран


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

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


O L E G, вот Вам пример для Блокнота:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strProcess
Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx

Dim lngProcessID


strProcess  = "notepad.exe"
strComputer = "."

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

If objSWbemServicesEx.Get("Win32_Process").Create(strProcess, Null, Nothing, lngProcessID) = 0 Then
	WScript.Echo "Process [" & strProcess & "] create successfully, Process ID is [" & lngProcessID & "]."
	
	WScript.Sleep 3000
	
	If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID) & "'").Terminate() = 0 Then
		WScript.Echo "Process [" & strProcess & "], Process ID [" & lngProcessID & "] terminate successfully."
	Else
		WScript.Echo "Can't terminate process [" & strProcess & "], Process ID [" & lngProcessID & "]."
	End If
Else
	WScript.Echo "Can't create process [" & strProcess & "]."
End If

Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0

Пытаемся запустить Блокнот, в случае успеха ждём три секунды, пытаемся закрыть тот экземпляр Блокнота, который запустили.

В случае же Проводника не всё так однозначно. Во-первых, процесс Проводника может существовать как в единственном экземпляре, так и в двух — когда настройками указано разделять процессы Проводника «Рабочего стола» и папок (вторичные входы здесь не рассматриваем). Во-вторых, если просто попытаться завершить процесс «Рабочего стола» Проводника — «Программа входа в систему Windows NT» (winlogon.exe) его попросту перезапустит (справедливо, по крайней мере для WIndows XP). Отменить подобное поведение можно, указав ненулевое значение «Reason» при вызове метода «.Terminate(Reason)».

К тому же, я совсем не понял, зачем снимать процесс, запускать процесс и снова снимать его. Ну, и, утверждение:
Цитата O L E G:
невозможно закрыть Explorer во 2 раз,так как он находиться в под процессе »
не верно.

Отправлено: 16:35, 02-04-2012 | #33