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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите с оператором If

Ответить
Настройки темы
VBS/WSH/JS - [решено] Помогите с оператором If

Новый участник


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

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


Пожалуйста Помогите, сам в VBS только пытаюсь делать первые шаги.

Есть такой код на удаление PowerDVD, как написать что бы если существует папка PowerDVD путь C:\Program Files\CyberLink\PowerDVD выполнял код ниже переведенный, если нет то пропускал код.




Код: Выделить весь код
 
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
set FSO=createobject("scripting.filesystemobject")
fso.deletefolder "C:\Program Files\CyberLink*.*",1
fso.deletefolder "C:\Program Files\InstallShield Installation Information*.*",1
WshShell.RegDelete  "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{6811CAA0-BF12-11D4-9EA1-0050BAE317E1}\"
Заранее спасибо всем!

Отправлено: 06:51, 26-07-2013

 

Ветеран


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

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


Код: Выделить весь код
Option Explicit

Dim strPath

Dim objFSO
Dim objWshShell


strPath = "C:\Program Files\CyberLink\PowerDVD"

Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

If objFSO.FolderExists(strPath) Then
	objFSO.DeleteFolder "C:\Program Files\CyberLink", True
	objFSO.DeleteFolder "C:\Program Files\InstallShield Installation Information", True
	objWshShell.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{6811CAA0-BF12-11D4-9EA1-0050BAE317E1}\"
End If

Set objWshShell = Nothing
Set objFSO      = Nothing

WScript.Quit 0
То, что Вы делаете, в корне неправильно: надо проверять раздел в реестре в «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XXX», если таковой найден — брать оттуда параметр «UninstallString» и использовать его. Вы же тупо удаляете всю папку «C:\Program Files\CyberLink» и всю папку «C:\Program Files\InstallShield Installation Information», удаляете весь раздел «HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{6811CAA0-BF12-11D4-9EA1-0050BAE317E1}».
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:33, 26-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


сколько пробовал удалить PowerDVD в тихом режиме не получается, надо удалить что бы пользователь не видел не каких окошек. боремся с не лицензионным ПО.

Отправлено: 07:51, 26-07-2013 | #3


Ветеран


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

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


wer0102, ясно. Но посмотрите какое количество разделов остаётся у Вас в реестре, например, по этой теме: Help! Need silent uninstall for PowerDVD 5.7! - Application Installs - MSFN Forum. Конечно, в реальности надо рассматривать конкретно взятую версию.

Отправлено: 09:07, 26-07-2013 | #4


Новый участник


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

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


Спасибо еще раз все работает.


Цитата Iska:
То, что Вы делаете, в корне неправильно: надо проверять раздел в реестре в «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XXX», если таковой найден — брать оттуда параметр «UninstallString» и использовать его.». »

Может еще подскажите, как заставить считать и выполнить параметр из реестра UninstallString

Отправлено: 11:05, 26-07-2013 | #5


Ветеран


Сообщения: 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


Новый участник


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

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


Iska, еще раз спасибо, с вашей помощью нашел даже больше чем искал.

Отправлено: 07:15, 30-07-2013 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Помогите с оператором If

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[Ну помогите же человеку, а? :)] Помогите с конкурсом HTML64 Тест-форум 0 29-06-2012 10:33
CMD/BAT - [решено] помогите скачал себе этот вирус помогите его разблокировать orell Скриптовые языки администрирования Windows 2 05-05-2012 15:45
[решено] Проблемы с... условным оператором if )) evg64 AutoIt 5 13-09-2009 19:32
Уценка контента оператором united Мобильные ОС, смартфоны и планшеты 6 17-10-2008 15:23
C/C++ - Проблема с оператором cscanf M1sha Программирование и базы данных 2 20-05-2008 23:04




 
Переход