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

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

Ветеран


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

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


Цитата wer0102:
Может еще подскажите, как заставить считать и выполнить параметр из реестра UninstallString »
На примере приложения «USB-модем «Билайн»:
читать дальше »
Код: Выделить весь код
Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002

Dim strKey

Dim strComputer

Dim strValue
Dim lngProcessId


' {93D34EE3-99B3-4DB1-8B0A-0A657466F90D} - USB-модем «Билайн»
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{93D34EE3-99B3-4DB1-8B0A-0A657466F90D}"

strComputer = "."

With WScript.CreateObject("WbemScripting.SWbemLocator")
	If .ConnectServer(strComputer, "root\default").Get("StdRegProv").GetStringValue(HKEY_LOCAL_MACHINE, strKey, "UninstallString", strValue) = 0 Then
		If .ConnectServer(strComputer, "root\cimv2").Get("Win32_Process").Create(strValue, Empty, Nothing, lngProcessId) = 0 Then
			' Good execute uninstall
		Else
			WScript.Echo "Can't execute [" & strValue & "]."
		End If
	Else
		WScript.Echo "Can't find [HKEY_LOCAL_MACHINE\" & strKey & "\" & UninstallString & "]."
	End If
End With

WScript.Quit 0

Тот же код работает и удалённо. Главный минус — удаление интерактивное, код лишь запускает этот процесс, пользуясь строкой «UninstallString» в реестре. Ну, и, удалённо, разумеется, окна не будет видно — оно будет запущено не на текущем десктопе удалённого пользователя.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:16, 26-07-2013 | #6