Differences
This shows you the differences between two versions of the page.
— |
userspace:pdf_split_and_merge [2014/05/29 14:09] (current) SisterOfMercy created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== PDF Split and Merge ====== | ||
+ | Adaptation of the opsi-template scripts for PDFsam. \\ | ||
+ | Get the 32-bit and 64-bit MSI files here: http://sourceforge.net/projects/pdfsam/files/pdfsam/2.2.2/\\ | ||
+ | Read more what PDFsam is and can do for you: http://www.pdfsam.org/basic-version/\\ | ||
+ | We have these files:\\ | ||
+ | %scriptpath%\files\pdfsam-x86-v2_2_2.msi\\ | ||
+ | %scriptpath%\files\pdfsam-x64-v2_2_2.msi\\ | ||
+ | %scriptpath%\files\pdfsam-config.xml\\ | ||
+ | |||
+ | ==== pdfsam-config.xml ==== | ||
+ | |||
+ | <code winst> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | |||
+ | <pdfsam config-version="2"> | ||
+ | <settings> | ||
+ | <laf current-laf="6" current-theme="0"/> | ||
+ | <thumbpoolsize value="3"/> | ||
+ | <loglevel value="20000"/> | ||
+ | <i18n value="en_GB"/> | ||
+ | <default_working_path value=""/> | ||
+ | <thumbnails_creator class="org.pdfsam.guiclient.business.thumbnails.creators.JPodThumbnailCreator"/> | ||
+ | <default_environment value=""/> | ||
+ | <plugs_absolute_path value=""/> | ||
+ | <checkupdates value="false"/> | ||
+ | <playsounds value="false"/> | ||
+ | <overwrite_confirmation value="false"/> | ||
+ | <high_quality_thumbs value="true"/> | ||
+ | <thumbnails_size value="270"/> | ||
+ | </settings> | ||
+ | </pdfsam> | ||
+ | </code> | ||
+ | |||
+ | ==== control file ==== | ||
+ | |||
+ | <code winst> | ||
+ | [Package] | ||
+ | version: 1 | ||
+ | depends: | ||
+ | incremental: False | ||
+ | |||
+ | [Product] | ||
+ | type: localboot | ||
+ | id: pdfsam | ||
+ | name: PDF Split And Merge | ||
+ | description: PDF Split and Merge is a free and open-source set of tools for manipulating PDF documents. | ||
+ | advice: Install this application if you need to merge different PDF files into one file, and vice versa. | ||
+ | version: 2.2.2 | ||
+ | priority: 0 | ||
+ | licenseRequired: False | ||
+ | productClasses: | ||
+ | setupScript: setup3264.ins | ||
+ | uninstallScript: uninstall3264.ins | ||
+ | updateScript: | ||
+ | alwaysScript: | ||
+ | onceScript: | ||
+ | customScript: | ||
+ | userLoginScript: | ||
+ | |||
+ | [ProductDependency] | ||
+ | action: setup | ||
+ | requiredProduct: java-runtime | ||
+ | requiredStatus: installed | ||
+ | |||
+ | [Changelog] | ||
+ | pdfsam (2.2.2-1) testing; urgency=low | ||
+ | |||
+ | * Initial package | ||
+ | |||
+ | -- ICT <ict@gcecad-service.nl> Mon, 26 May 2014 15:00:32 +0000 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== setup3264.ins ==== | ||
+ | |||
+ | <code winst> | ||
+ | ; Copyright (c) uib gmbh (www.uib.de) | ||
+ | ; This sourcecode is owned by uib | ||
+ | ; and published under the Terms of the General Public License. | ||
+ | ; credits: http://www.opsi.org/en/credits/ | ||
+ | ; | ||
+ | ; License Management removed | ||
+ | |||
+ | |||
+ | [Actions] | ||
+ | requiredWinstVersion >= "4.10.8.6" | ||
+ | |||
+ | ;DefVar $MsiId32$ | ||
+ | ;DefVar $UninstallProgram32$ | ||
+ | ;DefVar $MsiId64$ | ||
+ | ;DefVar $UninstallProgram64$ | ||
+ | DefVar $LogDir$ | ||
+ | DefVar $ProductId$ | ||
+ | DefVar $MinimumSpace$ | ||
+ | DefVar $InstallDir32$ | ||
+ | DefVar $InstallDir64$ | ||
+ | DefVar $ExitCode$ | ||
+ | DefVar $INST_SystemType$ | ||
+ | ;DefVar $INST_architecture$ | ||
+ | DefVar $INST_MsVersion$ | ||
+ | |||
+ | set $INST_MsVersion$ = GetMsVersionInfo | ||
+ | Set $INST_SystemType$ = GetSystemType | ||
+ | ;set $INST_architecture$ = GetProductProperty("install_architecture","system specific") | ||
+ | Set $LogDir$ = "%SystemDrive%\tmp" | ||
+ | |||
+ | ; ---------------------------------------------------------------- | ||
+ | ; - Please edit the following values - | ||
+ | ; ---------------------------------------------------------------- | ||
+ | ;$ProductId$ should be the name of the product in opsi | ||
+ | ; therefore please: only lower letters, no umlauts, | ||
+ | ; no white space use '-' as a seperator | ||
+ | Set $ProductId$ = "pdfsam" | ||
+ | Set $MinimumSpace$ = "500 MB" | ||
+ | ; the path were we find the product after the installation | ||
+ | Set $InstallDir32$ = "%ProgramFiles32Dir%\PDF Split And Merge Basic" | ||
+ | Set $InstallDir64$ = "%ProgramFiles64Dir%\PDF Split And Merge Basic" | ||
+ | ; ---------------------------------------------------------------- | ||
+ | |||
+ | if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) | ||
+ | LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ | ||
+ | isFatalError | ||
+ | ; Stop process and set installation status to failed | ||
+ | endif | ||
+ | if $INST_MsVersion$ < "5.1" | ||
+ | LogError "Windows XP or newer is required for " + $ProductId$ | ||
+ | isFatalError | ||
+ | endif | ||
+ | |||
+ | comment "Show product picture" | ||
+ | ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ | ||
+ | |||
+ | if FileExists("%ScriptPath%\delsub3264.ins") | ||
+ | comment "Start uninstall sub section" | ||
+ | Sub "%ScriptPath%\delsub3264.ins" | ||
+ | endif | ||
+ | |||
+ | comment "installing" | ||
+ | |||
+ | if ($INST_SystemType$ = "x86 System") | ||
+ | ;and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") | ||
+ | Message "Installing " + $ProductId$ + "..." | ||
+ | comment "Start setup program" | ||
+ | Winbatch_install_32 | ||
+ | Sub_check_exitcode | ||
+ | comment "Copy files" | ||
+ | Files_install_32 /32Bit | ||
+ | comment "Patch Registry" | ||
+ | Registry_install /32Bit | ||
+ | Registry_install_AllProfiles /AllNTUserDats | ||
+ | comment "Create shortcuts" | ||
+ | LinkFolder_install | ||
+ | endif | ||
+ | |||
+ | if ($INST_SystemType$ = "64 Bit System") | ||
+ | ;and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) | ||
+ | Message "Installing " + $ProductId$ + "..." | ||
+ | comment "Start setup program" | ||
+ | Winbatch_install_64 | ||
+ | Sub_check_exitcode | ||
+ | comment "Copy files" | ||
+ | Files_install_64 /64Bit | ||
+ | comment "Patch Registry" | ||
+ | Registry_install /64Bit | ||
+ | Registry_install_AllProfiles /AllNTUserDats | ||
+ | comment "Create shortcuts" | ||
+ | LinkFolder_install | ||
+ | endif | ||
+ | |||
+ | |||
+ | [Winbatch_install_32] | ||
+ | "%SystemRoot%\system32\msiexec.exe" /qb! /package "%ScriptPath%\files\pdfsam-x86-v2_2_2.msi" REBOOT=ReallySuppress | ||
+ | |||
+ | [Files_install_32] | ||
+ | copy "%ScriptPath%\files\pdfsam-config.xml" "$InstallDir32$" | ||
+ | |||
+ | [Winbatch_install_64] | ||
+ | "%SystemRoot%\system32\msiexec.exe" /qb! /package "%ScriptPath%\files\pdfsam-x64-v2_2_2.msi" REBOOT=ReallySuppress | ||
+ | |||
+ | [Files_install_64] | ||
+ | copy "%ScriptPath%\files\pdfsam-config.xml" "$InstallDir64$" | ||
+ | |||
+ | [Registry_install] | ||
+ | ;[HKEY_LOCAL_MACHINE\SOFTWARE\PDF Split And Merge Basic] | ||
+ | ;"Path"="c:\\Program Files\\PDF Split And Merge Basic\\" | ||
+ | ;"Version"="2.2.2" | ||
+ | |||
+ | ; Example of setting some values of an registry key: | ||
+ | ; | ||
+ | ; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$] | ||
+ | ; set "name1" = "some string value" | ||
+ | ; set "name2" = REG_DWORD:0001 | ||
+ | ; set "name3" = REG_BINARY:00 af 99 cd | ||
+ | |||
+ | [Registry_install_AllProfiles] | ||
+ | ;[HKEY_CURRENT_USER\Software\PDF Split And Merge Basic] | ||
+ | ;"MenuDirInstalled"=dword:00000001 | ||
+ | ;"DocsMenuDirInstalled"=dword:00000001 | ||
+ | |||
+ | ; Remove stored start menu order | ||
+ | deletekey [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu] | ||
+ | |||
+ | [LinkFolder_install] | ||
+ | ; Example of deleting a folder from AllUsers startmenu: | ||
+ | ; | ||
+ | ; set_basefolder common_programs | ||
+ | ; delete_subfolder $ProductId$ | ||
+ | ; | ||
+ | ; Example of creating an shortcut to the installed exe in AllUsers startmenu: | ||
+ | ; | ||
+ | ; set_basefolder common_programs | ||
+ | ; set_subfolder $ProductId$ | ||
+ | ; | ||
+ | ; set_link | ||
+ | ; name: $ProductId$ | ||
+ | ; target: <path to the program> | ||
+ | ; parameters: | ||
+ | ; working_dir: $InstallDir$ | ||
+ | ; icon_file: | ||
+ | ; icon_index: | ||
+ | ; end_link | ||
+ | ; | ||
+ | ; Example of creating an shortcut to the installed exe on AllUsers desktop: | ||
+ | ; | ||
+ | ; set_basefolder common_desktopdirectory | ||
+ | ; set_subfolder "" | ||
+ | ; | ||
+ | ; set_link | ||
+ | ; name: $ProductId$ | ||
+ | ; target: <path to the program> | ||
+ | ; parameters: <some_param> | ||
+ | ; working_dir: $InstallDir$ | ||
+ | ; icon_file: <path to icon file> | ||
+ | ; icon_index: 2 | ||
+ | ; end_link | ||
+ | |||
+ | |||
+ | [Sub_check_exitcode] | ||
+ | comment "Test for installation success via exit code" | ||
+ | set $ExitCode$ = getLastExitCode | ||
+ | ; informations to exit codes see | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa368542.aspx | ||
+ | if ($ExitCode$ = "0") | ||
+ | comment "Looks good: setup program gives exitcode zero" | ||
+ | else | ||
+ | comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ | ||
+ | if ($ExitCode$ = "1605") | ||
+ | comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." | ||
+ | comment "Uninstall of a not installed product failed - no problem" | ||
+ | else | ||
+ | if ($ExitCode$ = "1641") | ||
+ | comment "looks good: setup program gives exitcode 1641" | ||
+ | comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." | ||
+ | else | ||
+ | if ($ExitCode$ = "3010") | ||
+ | comment "looks good: setup program gives exitcode 3010" | ||
+ | comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." | ||
+ | else | ||
+ | logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ | ||
+ | isFatalError | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
+ | </code> | ||
+ | |||
+ | ==== uninstall3264.ins ==== | ||
+ | |||
+ | <code winst> | ||
+ | ; Copyright (c) uib gmbh (www.uib.de) | ||
+ | ; This sourcecode is owned by uib gmbh | ||
+ | ; and published under the Terms of the General Public License. | ||
+ | ; credits: http://www.opsi.org/en/credits/ | ||
+ | ; | ||
+ | ; License Management removed | ||
+ | |||
+ | [Actions] | ||
+ | requiredWinstVersion >= "4.10.8.6" | ||
+ | |||
+ | ;DefVar $MsiId32$ | ||
+ | ;DefVar $UninstallProgram32$ | ||
+ | ;DefVar $MsiId64$ | ||
+ | ;DefVar $UninstallProgram64$ | ||
+ | DefVar $LogDir$ | ||
+ | DefVar $ExitCode$ | ||
+ | DefVar $ProductId$ | ||
+ | DefVar $InstallDir32$ | ||
+ | DefVar $InstallDir64$ | ||
+ | DefVar $INST_SystemType$ | ||
+ | ;DefVar $INST_architecture$ | ||
+ | |||
+ | Set $INST_SystemType$ = GetSystemType | ||
+ | ;set $INST_architecture$ = GetProductProperty("install_architecture","system specific") | ||
+ | |||
+ | |||
+ | Set $LogDir$ = "%SystemDrive%\tmp" | ||
+ | |||
+ | ; ---------------------------------------------------------------- | ||
+ | ; - Please edit the following values - | ||
+ | ; ---------------------------------------------------------------- | ||
+ | Set $ProductId$ = "pdfsam" | ||
+ | Set $InstallDir32$ = "%ProgramFiles32Dir%\PDF Split And Merge Basic" | ||
+ | Set $InstallDir64$ = "%ProgramFiles64Dir%\PDF Split And Merge Basic" | ||
+ | ; ---------------------------------------------------------------- | ||
+ | |||
+ | |||
+ | comment "Show product picture" | ||
+ | ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ | ||
+ | |||
+ | Message "Uninstalling " + $ProductId$ + " ..." | ||
+ | |||
+ | if FileExists("%ScriptPath%\delsub3264.ins") | ||
+ | comment "Start uninstall sub section" | ||
+ | Sub "%ScriptPath%\delsub3264.ins" | ||
+ | endif | ||
+ | </code> | ||
+ | |||
+ | ==== delsub3264.ins ==== | ||
+ | |||
+ | <code winst> | ||
+ | ; Copyright (c) uib gmbh (www.uib.de) | ||
+ | ; This sourcecode is owned by uib gmbh | ||
+ | ; and published under the Terms of the General Public License. | ||
+ | ; credits: http://www.opsi.org/en/credits/ | ||
+ | ; | ||
+ | ; License Management removed | ||
+ | |||
+ | |||
+ | DefStringList $result$ | ||
+ | DefStringList $result1$ | ||
+ | DefVar $appKey$ | ||
+ | DefVar $UninstallCommandList$ | ||
+ | DefVar $appString$ | ||
+ | DefVar $appKeyString$ | ||
+ | DefVar $testName$ | ||
+ | ;DefVar $exeString$ | ||
+ | |||
+ | Set $appKeyString$ = "DisplayName" | ||
+ | Set $appString$ = "PDF Split And Merge" | ||
+ | |||
+ | ;Set $MsiId32$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' | ||
+ | ;Set $UninstallProgram32$ = $InstallDir32$ + "\uninstall.exe" | ||
+ | |||
+ | ;Set $MsiId64$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' | ||
+ | ;Set $UninstallProgram64$ = $InstallDir64$ + "\uninstall.exe" | ||
+ | |||
+ | if ($INST_SystemType$ = "x86 System") | ||
+ | ;and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") | ||
+ | Message "Uninstalling " + $ProductId$ + "..." | ||
+ | |||
+ | Set $result$ = getRegistryKeyList32("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") | ||
+ | for $app$ in $result$ do Sub_searchApp32 | ||
+ | if not ($UninstallCommandList$ = "") | ||
+ | set $result1$ = splitString($UninstallCommandList$,"::") | ||
+ | for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit | ||
+ | sub_check_exitcode | ||
+ | endif | ||
+ | |||
+ | |||
+ | ; if FileExists($UninstallProgram32$) | ||
+ | ; comment "Uninstall program found, starting uninstall" | ||
+ | ; Winbatch_uninstall_32 | ||
+ | ; sub_check_exitcode | ||
+ | ; endif | ||
+ | |||
+ | ; if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId32$ + "] DisplayName") = "") | ||
+ | ; comment "MSI id " + $MsiId32$ + " found in registry, starting msiexec to uninstall" | ||
+ | ; Winbatch_uninstall_msi_32 | ||
+ | ; sub_check_exitcode | ||
+ | ; endif | ||
+ | |||
+ | comment "Delete files" | ||
+ | Files_uninstall_32 /32Bit | ||
+ | Files_uninstall_AllProfiles /AllNtUserProfiles | ||
+ | comment "Cleanup registry" | ||
+ | Registry_uninstall /32Bit | ||
+ | Registry_uninstall_AllProfiles /AllNTUserDats | ||
+ | endif | ||
+ | |||
+ | if ($INST_SystemType$ = "64 Bit System") | ||
+ | ;and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) | ||
+ | Message "Uninstalling " + $ProductId$ + "..." | ||
+ | |||
+ | Set $result$ = getRegistryKeyList64("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") | ||
+ | for $app$ in $result$ do Sub_searchApp64 | ||
+ | if not ($UninstallCommandList$ = "") | ||
+ | set $result1$ = splitString($UninstallCommandList$,"::") | ||
+ | for $UninstallCommand$ in $result1$ do Winbatch_uninstall_64 /64Bit | ||
+ | sub_check_exitcode | ||
+ | endif | ||
+ | |||
+ | Set $result$ = getRegistryKeyList32("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") | ||
+ | for $app$ in $result$ do Sub_searchApp32 | ||
+ | if not ($UninstallCommandList$ = "") | ||
+ | set $result1$ = splitString($UninstallCommandList$,"::") | ||
+ | for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit | ||
+ | sub_check_exitcode | ||
+ | endif | ||
+ | |||
+ | ; if FileExists($UninstallProgram64$) | ||
+ | ; comment "Uninstall program found, starting uninstall" | ||
+ | ; Winbatch_uninstall_64 | ||
+ | ; sub_check_exitcode | ||
+ | ; endif | ||
+ | |||
+ | ; if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId64$ + "] DisplayName") = "") | ||
+ | ; comment "MSI id " + $MsiId64$ + " found in registry, starting msiexec to uninstall" | ||
+ | ; Winbatch_uninstall_msi_64 | ||
+ | ; sub_check_exitcode | ||
+ | ; endif | ||
+ | |||
+ | comment "Delete files" | ||
+ | Files_uninstall_64 /64Bit | ||
+ | Files_uninstall_AllProfiles /AllNtUserProfiles | ||
+ | comment "Cleanup registry" | ||
+ | Registry_uninstall /64Bit | ||
+ | Registry_uninstall_AllProfiles /AllNTUserDats | ||
+ | endif | ||
+ | |||
+ | comment "Delete program shortcuts" | ||
+ | LinkFolder_uninstall | ||
+ | |||
+ | [Winbatch_uninstall_32] | ||
+ | $UninstallCommand$ | ||
+ | |||
+ | [Files_uninstall_32] | ||
+ | ; Example for recursively deleting the installation directory (don't forget the trailing backslash): | ||
+ | ; | ||
+ | ; delete -sf "$InstallDir32$\" | ||
+ | |||
+ | [Winbatch_uninstall_64] | ||
+ | $UninstallCommand$ | ||
+ | |||
+ | [Files_uninstall_64] | ||
+ | ; Example for recursively deleting the installation directory (don't forget the trailing backslash): | ||
+ | ; | ||
+ | ; delete -sf "$InstallDir64$\" | ||
+ | |||
+ | [Files_uninstall_AllProfiles] | ||
+ | delete -sf "%UserProfileDir%\Application Data\.pdfsam\" | ||
+ | |||
+ | [Registry_uninstall] | ||
+ | ;deletekey [HKEY_LOCAL_MACHINE\SOFTWARE\PDF Split And Merge Basic] | ||
+ | |||
+ | [Registry_uninstall_AllProfiles] | ||
+ | deletekey [HKEY_CURRENT_USER\Software\PDF Split And Merge Basic] | ||
+ | |||
+ | |||
+ | [LinkFolder_uninstall] | ||
+ | ; Example of deleting a folder from AllUsers startmenu: | ||
+ | ; | ||
+ | ; set_basefolder common_programs | ||
+ | ; delete_subfolder $ProductId$ | ||
+ | ; | ||
+ | ; Example of deleting a shortcut from AllUsers desktop: | ||
+ | ; | ||
+ | ; set_basefolder common_desktopdirectory | ||
+ | ; set_subfolder "" | ||
+ | ; delete_element $ProductId$ | ||
+ | |||
+ | [Sub_check_exitcode] | ||
+ | comment "Test for installation success via exit code" | ||
+ | set $ExitCode$ = getLastExitCode | ||
+ | ; informations to exit codes see | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa368542.aspx | ||
+ | if ($ExitCode$ = "0") | ||
+ | comment "Looks good: setup program gives exitcode zero" | ||
+ | else | ||
+ | comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ | ||
+ | if ($ExitCode$ = "1605") | ||
+ | comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." | ||
+ | comment "Uninstall of a not installed product failed - no problem" | ||
+ | else | ||
+ | if ($ExitCode$ = "1641") | ||
+ | comment "looks good: setup program gives exitcode 1641" | ||
+ | comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." | ||
+ | else | ||
+ | if ($ExitCode$ = "3010") | ||
+ | comment "looks good: setup program gives exitcode 3010" | ||
+ | comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." | ||
+ | else | ||
+ | logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ | ||
+ | isFatalError | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
+ | |||
+ | [Sub_searchApp32] | ||
+ | set $appKey$ = "[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + "$app$" + "] " + $appKeyString$ | ||
+ | Set $testName$ = GetRegistryStringValue32($appKey$) | ||
+ | if contains($testName$,$appString$) | ||
+ | ; set $appKey$ = "[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + "$app$" + "] UninstallString" | ||
+ | ; Set $testName$ = GetRegistryStringValue32($appKey$) | ||
+ | ;if contains(lower($testName$),lower("MsiExec.exe")) | ||
+ | set $UninstallCommandList$ = $UninstallCommandList$ + "MsiExec.exe /x " + "$app$" + " /qb-! REBOOT=ReallySuppress::" | ||
+ | ;else | ||
+ | ; Set $testName$ = unquote($testName$,'"') | ||
+ | ; Set $testName$ = unquote($testName$,"'") | ||
+ | ; Set $exeString$ = takeString(0, splitString ($testName$, "exe")) | ||
+ | ; set $UninstallCommandList$ = $UninstallCommandList$ + $exeString$ + "exe /S::" | ||
+ | ;endif | ||
+ | endif | ||
+ | |||
+ | [Sub_searchApp64] | ||
+ | set $appKey$ = "[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + "$app$" + "] " + $appKeyString$ | ||
+ | Set $testName$ = GetRegistryStringValue64($appKey$) | ||
+ | if contains($testName$,$appString$) | ||
+ | ; set $appKey$ = "[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + "$app$" + "] UninstallString" | ||
+ | ; Set $testName$ = GetRegistryStringValue64($appKey$) | ||
+ | ;if contains(lower($testName$),lower("MsiExec.exe")) | ||
+ | set $UninstallCommandList$ = $UninstallCommandList$ + "MsiExec.exe /x " + "$app$" + " /qb-! REBOOT=ReallySuppress::" | ||
+ | ;else | ||
+ | ; Set $testName$ = unquote($testName$,'"') | ||
+ | ; Set $testName$ = unquote($testName$,"'") | ||
+ | ; Set $exeString$ = takeString(0, splitString ($testName$, "exe")) | ||
+ | ; set $UninstallCommandList$ = $UninstallCommandList$ + '"' + $exeString$ + 'exe /S"::' | ||
+ | ;endif | ||
+ | endif | ||
+ | </code> |