Что нового

[Автоматизация] Тихое удаление CyberLink

millifolium

Новичок
Сообщения
18
Репутация
1
Как максимально компактно представить такой батник в autoit?
Код:
::_________________________________________________________________________________
::
:: Удаление программ Cyberlink
::_________________________________________________________________________________
:: Тестировалось на ноутбуках Samsung (Win7 x86), HP (Win7 x86/x64)

@echo off

:: Устанавливаем директорию ProgramFiles в зависимости от 32-х или 64-х битной ОС
set PFiles=%ProgramFiles%
if DEFINED ProgramFiles(x86) set PFiles=%ProgramFiles(x86)%

:: Вызываем функцию удаления, передавая ей название программы и ее код
Call :UninstallCyber "CyberLink Power Director" {CB099890-1D5F-11D5-9EA9-0050BAE317E1}
Call :UninstallCyber "CyberLink Power Director 10" {B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}
Call :UninstallCyber "CyberLink PhotoDirector" {4862344A-A39C-4897-ACD4-A1BED5163C5A}
Call :UninstallCyber "CyberLink PowerProducer" {B7A0CE06-068E-11D6-97FD-0050BACBF861}
Call :UninstallCyber "CyberLink Power dvd 8" {2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}
Call :UninstallCyber "CyberLink Power dvd 9" {A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}
Call :UninstallCyber "CyberLink Power dvd 10" {DEC235ED-58A4-4517-A278-C41E8DAEAB3B}
Call :UninstallCyber "CyberLink LabelPrint" {C59C179C-668D-49A9-B6EA-0121CCFC1243}
Call :UninstallCyber "CyberLink PhotoNow!" {D36DD326-7280-11D8-97C8-000129760CBE}
Call :UninstallCyber "CyberLink Power2GO" {40BF1E83-20EB-11D8-97C5-0009C5020658}
Call :UninstallCyber "CyberLink Power2GO 8" {2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}
Call :UninstallCyber "CyberLink Media+Player 10" {34FBC7C4-CD31-4D93-A428-0E524EAC4586}
Call :UninstallCyber "CyberLink Media Suite" {1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}
Call :UninstallCyber "CyberLink Media Show" {80E158EA-7181-40FE-A701-301CE6BE64AB}
echo.
exit

:: Функция удаления компонента CyberLink с кодом %2
:UninstallCyber
echo.
If Exist "%PFiles%\InstallShield Installation Information\%2\setup.exe" (
	echo uninstall %1...
	start /wait "" "%PFiles%\InstallShield Installation Information\%2\setup.exe" /z-uninstall /S /v /qn
) Else (
	echo %1 NOT FOUND...
)
GoTo :EOF
 
Автор
M

millifolium

Новичок
Сообщения
18
Репутация
1
ОК, а как проверить наличие данного ПО перед выполнением задачи?
 
Автор
M

millifolium

Новичок
Сообщения
18
Репутация
1
Ок!
Вижу дело так:
Код:
Func _SoftUninstaller()
	GUICtrlSetData($List1, "Запуск деинсталляции" & @CRLF, 1)
	Local $InstallShield = "C:\Program Files\InstallShield Installation Information"
	If @OSArch = "X64" Then $InstallShield = "C:\Program Files (x86)\InstallShield Installation Information"

	; Ищем CyberLink Software
	GUICtrlSetData($List1, "Поиск CberLink Software" & @CRLF, 1)
	$CyberLinkDir = "none"
	If FileExists($InstallShield & "\{CB099890-1D5F-11D5-9EA9-0050BAE317E1}") Then $CyberLinkDir = $InstallShield & "\{CB099890-1D5F-11D5-9EA9-0050BAE317E1}"
	If FileExists($InstallShield & "\{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}") Then $CyberLinkDir = $InstallShield & "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}"
	If FileExists($InstallShield & "\{4862344A-A39C-4897-ACD4-A1BED5163C5A}") Then $CyberLinkDir = $InstallShield & "{4862344A-A39C-4897-ACD4-A1BED5163C5A}"
	If FileExists($InstallShield & "\{B7A0CE06-068E-11D6-97FD-0050BACBF861}") Then $CyberLinkDir = $InstallShield & "{B7A0CE06-068E-11D6-97FD-0050BACBF861}"
	If FileExists($InstallShield & "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}") Then $CyberLinkDir = $InstallShield & "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}"
	If FileExists($InstallShield & "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}") Then $CyberLinkDir = $InstallShield & "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}"
	If FileExists($InstallShield & "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}") Then $CyberLinkDir = $InstallShield & "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}"
	If FileExists($InstallShield & "{C59C179C-668D-49A9-B6EA-0121CCFC1243}") Then $CyberLinkDir = $InstallShield & "{C59C179C-668D-49A9-B6EA-0121CCFC1243}"
	If FileExists($InstallShield & "{D36DD326-7280-11D8-97C8-000129760CBE}") Then $CyberLinkDir = $InstallShield & "{D36DD326-7280-11D8-97C8-000129760CBE}"
	If FileExists($InstallShield & "{40BF1E83-20EB-11D8-97C5-0009C5020658}") Then $CyberLinkDir = $InstallShield & "{40BF1E83-20EB-11D8-97C5-0009C5020658}"
	If FileExists($InstallShield & "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}") Then $CyberLinkDir = $InstallShield & "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}"
	If FileExists($InstallShield & "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}") Then $CyberLinkDir = $InstallShield & "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}"
	If FileExists($InstallShield & "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}") Then $CyberLinkDir = $InstallShield & "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}"
	If FileExists($InstallShield & "{80E158EA-7181-40FE-A701-301CE6BE64AB}") Then $CyberLinkDir = $InstallShield & "{80E158EA-7181-40FE-A701-301CE6BE64AB}"

	; Если ни одна из папок не найдена, переходим к поиску Других...
	;If CyberLinkDir = "none" Then _UninstallWildTangent($InstallShield, $CyberLinkDir)

	If $CyberLinkDir = "none" Then
		GUICtrlSetData($List1, "А удалять-то нечего" & @CRLF, 1)
	EndIf

	;Удаление CyberLink Software
	$search = FileFindFirstFile($CyberLinkDir & "\*.*")

	While 1
		$file = FileFindNextFile($search)
		If @error Then ExitLoop
		If FileExists($CyberLinkDir & "\" & $file & "\setup.exe") Then
			GUICtrlSetData($List1, "Удаление " & $file & @CRLF, 1)
			RunWait($CyberLinkDir & "\" & $file & "\setup.exe" & " /z-uninstall /S /v /qn", "", @SW_HIDE)
			GUICtrlSetData($List1, "ОК" & @CRLF, 1)
		EndIf

	WEnd
	FileClose($search)
	GUICtrlSetData($List1, "Деинсталляция завершена" & @CRLF, 1)

EndFunc   ;==>_SoftUninstaller

Будет работать?
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
если все в итоге сводится к запуску программы с ключами на удаление, то не проще ли
Код:
If FileExists('C:\Program Files\prog\prog.exe') Then
	RunWait("C:\Program Files\prog\prog.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists('C:\Program Files (x86)\prog\prog.exe') Then
	RunWait("C:\Program Files (x86)\prog\prog.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
EndIf

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

millifolium

Новичок
Сообщения
18
Репутация
1
Дело сводится к проверке наличия ПО для деинсталляции и его собственно удаления, путем написания функции, важным критерием является длинна самого скрипта.


Что то не заработал у меня мой скрипт...
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
millifolium
ну так в моем скрипте есть и проверка на наличие и удаление. и не много строчек:smile:
но нужно учесть, что ключи удаления программы могут измениться вместе с версией программы.
для поиска установленного софта можно прочитать тему http://autoit-script.ru/index.php/topic,2314.0.html
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Т.к нельзя удалить то чего нет, то почему бы сразу не запускать команду удаления. Если ей нечего будет удалять, то и не чего не удалиться, зачем эти лишние проверки?
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Полный аналог вышеуказанного bat-файла на Autoit(не тестил):

Код:
#NoTrayIcon

; Вызываем функцию удаления, передавая ей название программы и ее код
_UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
_UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
_UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
_UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
_UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
_UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
_UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
_UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
_UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
_UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
_UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
_UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
_UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
_UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")

;Функция удаления компонента CyberLink
Func _UninstallCyber($1, $2)
   If FileExists(@ProgramFilesDir & "\InstallShield Installation Information\" & $2 & "\setup.exe") Then 
	  ConsoleWrite('Uninstall "' & $1 & '"...' & @CRLF)
	  RunWait(@ProgramFilesDir & "\InstallShield Installation Information\" & $2 & "\setup.exe" & " /z-uninstall /S /v /qn", "", @SW_HIDE)
   Else
	  ConsoleWrite('"'& $1 & '" не найден...' & @CRLF)
   EndIf
EndFunc
 
Автор
M

millifolium

Новичок
Сообщения
18
Репутация
1
Вот итог, спасибо loiner
Код:
Func _UninstallSoft()

GUICtrlSetData($List1, "Запуск деинсталляции" & @CRLF, 1)
    Local $InstallShield = "C:\Program Files\InstallShield Installation Information"
    If @OSArch = "X64" Then $InstallShield = "C:\Program Files (x86)\InstallShield Installation Information"

If FileExists($InstallShield & "\{CB099890-1D5F-11D5-9EA9-0050BAE317E1}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power Director" & @CRLF, 1)
    RunWait($InstallShield & "\{CB099890-1D5F-11D5-9EA9-0050BAE317E1}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power Director 10" & @CRLF, 1)
    RunWait($InstallShield & "\{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{4862344A-A39C-4897-ACD4-A1BED5163C5A}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Photo Director" & @CRLF, 1)
    RunWait($InstallShield & "\{4862344A-A39C-4897-ACD4-A1BED5163C5A}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{B7A0CE06-068E-11D6-97FD-0050BACBF861}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power Producer" & @CRLF, 1)
    RunWait($InstallShield & "\{B7A0CE06-068E-11D6-97FD-0050BACBF861}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power dvd 8" & @CRLF, 1)
    RunWait($InstallShield & "\{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power dvd 9" & @CRLF, 1)
    RunWait($InstallShield & "\{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power dvd 10" & @CRLF, 1)
    RunWait($InstallShield & "\{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{C59C179C-668D-49A9-B6EA-0121CCFC1243}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Label Print" & @CRLF, 1)
    RunWait($InstallShield & "\{C59C179C-668D-49A9-B6EA-0121CCFC1243}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{D36DD326-7280-11D8-97C8-000129760CBE}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink PhotoNow!" & @CRLF, 1)
    RunWait($InstallShield & "\{D36DD326-7280-11D8-97C8-000129760CBE}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{40BF1E83-20EB-11D8-97C5-0009C5020658}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power2GO" & @CRLF, 1)
    RunWait($InstallShield & "\{40BF1E83-20EB-11D8-97C5-0009C5020658}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Power2GO 8" & @CRLF, 1)
    RunWait($InstallShield & "\{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{34FBC7C4-CD31-4D93-A428-0E524EAC4586}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Media+Player 10" & @CRLF, 1)
    RunWait($InstallShield & "\{34FBC7C4-CD31-4D93-A428-0E524EAC4586}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Media Suite" & @CRLF, 1)
    RunWait($InstallShield & "\{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
ElseIf FileExists($InstallShield & "\{80E158EA-7181-40FE-A701-301CE6BE64AB}\setup.exe") Then
	GUICtrlSetData($List1, "Деинсталляция CyberLink Media Show" & @CRLF, 1)
    RunWait($InstallShield & "\{80E158EA-7181-40FE-A701-301CE6BE64AB}\setup.exe /z-uninstall /S /v /qn", "", @SW_HIDE)
EndIf
GUICtrlSetData($List1, "Деинсталляция CyberLink Software завершена" & @CRLF, 1)

EndFunc


Конечно не так аляписто...и коротко...но работает.
Есть рекомендация по оптимизации...?
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Есть рекомендация по оптимизации...?
Есть, но вы их проигнорировали в моем предыдущем примере... Для вашего случая достаточно было поменять
Код:
ConsoleWrite('Uninstall "' & $1 & '"...' & @CRLF)

на
Код:
GUICtrlSetData($List1, "Деинсталляция " & $1 & @CRLF, 1)
 
Автор
M

millifolium

Новичок
Сообщения
18
Репутация
1
Попробуем.


Добавлено:
Сообщение автоматически объединено:

Не осилил:
Код:
;297 строка:
Case $Button10
			_UninstallCyber()

;-------------------------------------------------------------------------------------------;

;2369строка; Вызываем функцию удаления, передавая ей название программы и ее код

_UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
_UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
_UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
_UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
_UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
_UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
_UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
_UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
_UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
_UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
_UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
_UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
_UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
_UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")

;Функция удаления компонента CyberLink
Func _UninstallCyber($1, $2)



: ERROR: _UninstallCyber() called by a previous line with 0 arg(s). Min = 2. First previous line calling this Func is 297.
Func _UninstallCyber($1, $2)



Код:
If FileExists(@ProgramFilesDir & "\InstallShield Installation Information\" & $2 & "\setup.exe") Then
      GUICtrlSetData($List1, "Деинсталляция " & $1 & @CRLF, 1)
      RunWait(@ProgramFilesDir & "\InstallShield Installation Information\" & $2 & "\setup.exe" & " /z-uninstall /S /v /qn", "", @SW_HIDE)
   Else
	  GUICtrlSetData($List1, "не найден... " & $1 & @CRLF, 1)
  EndIf

EndFunc


Ошибка при запуске...почему?
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Ошибка при запуске...почему?
ответ в самой ошибке:
: ERROR: _UninstallCyber() called by a previous line with 0 arg(s). Min = 2. First previous line calling this Func is 297.
Func _UninstallCyber($1, $2)

Ведь у нас функция задается с 2 аргументами:
Код:
Func _UninstallCyber($1, $2)


а вы хотите ее запустить без аргументов:
Код:
Case $Button10
            _UninstallCyber()




Добавлено:
Сообщение автоматически объединено:

надо как то так:
Код:
Case $Button10
       _UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
       _UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
       _UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
       _UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
       _UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
       _UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
       _UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
       _UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
       _UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
       _UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
       _UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
       _UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
       _UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
       _UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")
Case $Button11


или так:

Код:
; ...
    Case $Button10
       _start()
    Case $Button11
       Exit
EndSwitch

Func _start()
       _UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
       _UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
       _UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
       _UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
       _UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
       _UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
       _UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
       _UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
       _UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
       _UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
       _UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
       _UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
       _UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
       _UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")
EndFunc
 

beliy

Продвинутый
Сообщения
372
Репутация
72
вначале добавляешь:
Код:
Global $1, $2


но лучше дать этим переменным более внятные названия. Например:

Код:
Global $sNameCyber, $sPathCyber
 
Автор
M

millifolium

Новичок
Сообщения
18
Репутация
1
beliy, неосилил :smile: Наверное придется оставить "длинный вариант" и прикрутить ini'шник
Вот что неработающее получилось.
Код:
Func _UninstallSoft2()
		Global $sNameCyber, $sPathCyber
		_UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
		_UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
		_UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
		_UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
		_UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
		_UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
		_UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
		_UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
		_UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
		_UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
		_UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
		_UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
		_UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
		_UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")
EndFunc

;Функция удаления компонента CyberLink
Func _UninstallCyber($sNameCyber, $sPathCyber)
   If FileExists(@ProgramFilesDir & "\InstallShield Installation Information\" & $sPathCyber & "\setup.exe") Then
      GUICtrlSetData($List1, "Деинсталляция " & $sNameCyber & @CRLF, 1)
      RunWait(@ProgramFilesDir & "\InstallShield Installation Information\" & $sPathCyber & "\setup.exe" & " /z-uninstall /S /v /qn", "", @SW_HIDE)
   Else
	  GUICtrlSetData($List1, "не найден... " & $sNameCyber & @CRLF, 1)
  EndIf

EndFunc
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Код:
Global $sNameCyber, $sPathCyber

_UninstallSoft2()

Func _UninstallSoft2()
        _UninstallCyber ("CyberLink Power Director", "{CB099890-1D5F-11D5-9EA9-0050BAE317E1}")
        _UninstallCyber ("CyberLink Power Director 10", "{B0B4F6D2-F2AE-451A-9496-6F2F6A897B32}")
        _UninstallCyber ("CyberLink PhotoDirector", "{4862344A-A39C-4897-ACD4-A1BED5163C5A}")
        _UninstallCyber ("CyberLink PowerProducer", "{B7A0CE06-068E-11D6-97FD-0050BACBF861}")
        _UninstallCyber ("CyberLink Power dvd 8", "{2BF2E31F-B8BB-40A7-B650-98D28E0F7D47}")
        _UninstallCyber ("CyberLink Power dvd 9", "{A8516AC9-AAF1-47F9-9766-03E2D4CDBCF8}")
        _UninstallCyber ("CyberLink Power dvd 10", "{DEC235ED-58A4-4517-A278-C41E8DAEAB3B}")
        _UninstallCyber ("CyberLink LabelPrint", "{C59C179C-668D-49A9-B6EA-0121CCFC1243}")
        _UninstallCyber ("CyberLink PhotoNow!", "{D36DD326-7280-11D8-97C8-000129760CBE}")
        _UninstallCyber ("CyberLink Power2GO", "{40BF1E83-20EB-11D8-97C5-0009C5020658}")
        _UninstallCyber ("CyberLink Power2GO 8", "{2A87D48D-3FDF-41fd-97CD-A1E370EFFFE2}")
        _UninstallCyber ("CyberLink Media+Player 10", "{34FBC7C4-CD31-4D93-A428-0E524EAC4586}")
        _UninstallCyber ("CyberLink Media Suite", "{1FBF6C24-C1FD-4101-A42B-0C564F9E8E79}")
        _UninstallCyber ("CyberLink Media Show", "{80E158EA-7181-40FE-A701-301CE6BE64AB}")
EndFunc

;Функция удаления компонента CyberLink
Func _UninstallCyber($sNameCyber, $sPathCyber)
   If FileExists(@ProgramFilesDir & "\InstallShield Installation Information\" & $sPathCyber & "\setup.exe") Then
      GUICtrlSetData($List1, "Деинсталляция " & $sNameCyber & @CRLF, 1)
      RunWait(@ProgramFilesDir & "\InstallShield Installation Information\" & $sPathCyber & "\setup.exe" & " /z-uninstall /S /v /qn", "", @SW_HIDE)
   Else
      GUICtrlSetData($List1, "не найден... " & $sNameCyber & @CRLF, 1)
  EndIf
EndFunc
 
Верх