== TightVNC with the new MSI installer ==
Since TightVNC 2.5.2 the developer changed to an MSI Installation.
If you want you can install only the Viwer or only the Server.
I created a Winst script with some Productproperties to modify the installer.
I think it's beta, so some Properties may not work correctly. For example the product property to install the Server in non Service Mode.
But you can set the Server Password and you can install only the viewer or only the Server.
For more Information about the new MSI Installer please read this PDF: [[http://www.tightvnc.com/doc/win/TightVNC-installer-2.5.2.pdf]]
====== TightVNC Ver. 2.5.2 ======
Tested with opsi 4.11.2.9 \\
requiredWinstVersion >= Not Tested
Files can be downloaded at http://www.tightvnc.com
By --- //[[tobias.friede@wki.fraunhofer.de|tobias]] 2012/10/12 08:51//
Tree:\\
├ CLIENT_DATA
│ ├ delsub3264.ins
│ ├ setup3264.ins
│ ├ tightVNC.png
│ ├ uninstall3264.ins
│ ├ vncX86.msi
│ └ vncX64.msi
├ OPSI
│ └ control
==== Steps ====
- Download TightVNC (x64, x86)
==== setup.ins ====
[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 $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
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 -
; ----------------------------------------------------------------
;$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$ = "TightVNC"
Set $MinimumSpace$ = "100 MB"
; the path were we find the product after the installation
Set $InstallDir32$ = "%ProgramFiles32Dir%\"
Set $InstallDir64$ = "%ProgramFiles64Dir%\"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
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
else
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$ + " 32 Bit..."
sub_generate_setupcommand
comment "Start setup program"
Winbatch_install_32
Sub_check_exitcode
endif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Installing " + $ProductId$ + " 64 Bit..."
sub_generate_setupcommand
comment "Start setup program"
Winbatch_install_64
Sub_check_exitcode
endif
endif
[Winbatch_install_32]
; === MSI package =======================================================================================
msiexec /i %scriptpath%\vncX86.msi /passive /norestart $setupMSI$
[Winbatch_install_64]
; === MSI package =======================================================================================
msiexec /i %scriptpath%\vncX64.msi /passive /norestart $setupMSI$
[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
;-------------------------------------------------------------------------------
; Generating the Setup command
;-------------------------------------------------------------------------------
[sub_generate_setupcommand]
; Define String and Variables
DefStringList $parameter$
;Stringlist for MSI Parameter
DefVar $usepassword$
;UsePassword Yes or No
DefVar $password$
;The VNC Connection Password
DefVar $setupMSI$
;The full MSI Setup command
DefVar $ownParameter$
;Variable for define own commands via productproperty
; Default Options
DefVar $Mode$
DefVar $ADDLOCAL$
DefVar $VIEWER_ASSOCIATE_VNC_EXTENSION$
DefVar $SERVER_REGISTER_AS_SERVICE$
DefVar $SERVER_ADD_FIREWALL_EXCEPTION$
DefVar $VIEWER_ADD_FIREWALL_EXCEPTION$
DefVar $SERVER_ALLOW_SAS$
set $Mode$ = GetproductProperty("mode","Server")
set $parameter$= addtolist($parameter$,'ADDLOCAL='+$Mode$ )
;Viewer Parameter
if ($Mode$ = "viewer")
sub_set_ViewerOptions
else
if ($Mode$ = "server")
sub_set_ServerOptions
else
if ($Mode$ = "Viewer,Server")
sub_set_ServerOptions
sub_set_ViewerOptions
else
isFatalError
comment "You must set the correct ProductProperty"
endif
endif
endif
;create setup command
for %s% in $parameter$ do set $setupMSI$ = $setupMSI$+" %s%"
comment $setupMSI$
[sub_set_ViewerOptions]
set $VIEWER_ASSOCIATE_VNC_EXTENSION$ = GetproductProperty("VIEWER_ASSOCIATE_VNC_EXTENSION","1")
set $VIEWER_ADD_FIREWALL_EXCEPTION$ = GetproductProperty("VIEWER_ADD_FIREWALL_EXCEPTION","1")
set $parameter$= addtolist($parameter$,"VIEWER_ASSOCIATE_VNC_EXTENSION="+ $VIEWER_ASSOCIATE_VNC_EXTENSION$ )
set $parameter$= addtolist($parameter$,"VIEWER_ADD_FIREWALL_EXCEPTION="+ $VIEWER_ADD_FIREWALL_EXCEPTION$ )
[sub_set_ServerOptions]
set $SERVER_REGISTER_AS_SERVICE$ = GetproductProperty("SERVER_REGISTER_AS_SERVICE", "0")
set $SERVER_ADD_FIREWALL_EXCEPTION$ = GetproductProperty("SERVER_ADD_FIREWALL_EXCEPTION", "1")
set $SERVER_ALLOW_SAS$ = GetproductProperty("SERVER_ALLOW_SAS", "1")
set $password$ = "VALUE_OF_PASSWORD="+GetProductProperty('passwort', 'passwort')
set $parameter$= addtolist($parameter$,"SERVER_REGISTER_AS_SERVICE="+ $SERVER_REGISTER_AS_SERVICE$ )
if ($SERVER_REGISTER_AS_SERVICE$ = "1")
set $parameter$= addtolist($parameter$,"SERVER_ADD_FIREWALL_EXCEPTION="+ $SERVER_ADD_FIREWALL_EXCEPTION$ )
set $parameter$= addtolist($parameter$,"SERVER_ALLOW_SAS="+ $SERVER_ALLOW_SAS$)
if ($usepassword$ = "yes")
set $parameter$= addtolist($parameter$,"SET_USECONTROLAUTHENTICATION=1 ")
set $parameter$= addtolist($parameter$,"VALUE_OF_USEVNCAUTHENTICATION=1 ")
set $parameter$= addtolist($parameter$,"SET_PASSWORD=1 ")
set $parameter$= addtolist($parameter$,$password$ )
else
comment ="No Password set"
endif
else
comment = "Server is not registered as service"
endif
;------- End -------------------------------------------------------------------
;-------------------------------------------------------------------------------
==== uninstall.ins ====
; 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/credits/
[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 $LicenseRequired$
DefVar $LicensePool$
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$ = "TightVNC"
Set $InstallDir32$ = "%ProgramFiles32Dir%\TightVNC"
Set $InstallDir64$ = "%ProgramFiles64Dir%\TightVNC"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
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
if $LicenseRequired$ = "true"
comment "Licensing required, free license used"
Sub_free_license
endif
[Sub_free_license]
comment "License management is enabled and will be used"
comment "Trying to free license used for the product"
DefVar $result$
Set $result$ = FreeLicense($LicensePool$)
; If there is an assignment of a license pool to the product, it is possible to use
; Set $result$ = FreeLicense("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
==== delsub.ins ====
; 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/credits/
Set $MsiId32$ = '{1ACD399C-7F26-43A6-9F16-3AB28F63FDC7}'
Set $UninstallProgram32$ = $InstallDir32$ + "\uninstall.exe"
Set $MsiId64$ = '{BC994A59-6E98-4203-8A35-819938DD5ED1}'
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$ + " 32 Bit..."
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
comment "Cleanup registry"
Registry_uninstall /32Bit
endif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Uninstalling " + $ProductId$ + " 64 Bit..."
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
comment "Cleanup registry"
Registry_uninstall /64Bit
endif
comment "Delete program shortcuts"
LinkFolder_uninstall
[Winbatch_uninstall_32]
; Choose one of the following examples as basis for program uninstall
;
; === Nullsoft Scriptable Install System ================================================================
; "$UninstallProgram32$" /S
;
; === Inno Setup ========================================================================================
; "$UninstallProgram32$" /silent /norestart /SUPPRESSMSGBOXES
[Winbatch_uninstall_msi_32]
msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress
[Files_uninstall_32]
; Example for recursively deleting the installation directory (don't forget the trailing backslash):
;
; delete -sf "$InstallDir32$\"
[Winbatch_uninstall_64]
; Choose one of the following examples as basis for program uninstall
;
; === Nullsoft Scriptable Install System ================================================================
; "$UninstallProgram64$" /S
;
; === Inno Setup ========================================================================================
; "$UninstallProgram64$" /silent /norestart /SUPPRESSMSGBOXES
[Winbatch_uninstall_msi_64]
msiexec /x $MsiId64$ /qb! REBOOT=ReallySuppress
[Files_uninstall_64]
; Example for recursively deleting the installation directory (don't forget the trailing backslash):
;
; delete -sf "$InstallDir64$\"
[Registry_uninstall]
; Example of deleting a registry key:
;
; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
[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
[Package]
version: 1
depends:
incremental: False
[Product]
type: localboot
id: tightvnc
name: TightVNC
description: VNC Viewer und Server
advice: Kostenfrei
version: 2.5.2
priority: 0
licenseRequired: False
productClasses:
setupScript: setup3264.ins
uninstallScript: uninstall3264.ins
updateScript:
alwaysScript:
onceScript:
customScript:
userLoginScript:
[ProductProperty]
type: unicode
name: mode
multivalue: False
editable: False
description: Server, Viewer or Server and Viewer
values: ["Server", "Viewer", "Viewer,Server"]
default: ["Viewer"]
[ProductProperty]
type: unicode
name: viewer_associate_vnc_extension
multivalue: False
editable: False
description: Viewer mit VNC extension verkuepfen
values: ["0", "1"]
default: ["1"]
[ProductProperty]
type: unicode
name: viewer_add_firewall_exception
multivalue: False
editable: True
description: viewer: Firewall Ausnahme definieren
values: ["0", "1"]
default: ["1"]
[ProductProperty]
type: unicode
name: server_register_as_service
multivalue: False
editable: False
description: Server: Wird als Dienst ausgefhrt
values: ["0", "1"]
default: ["0"]
[ProductProperty]
type: unicode
name: server_add_firewall_exception
multivalue: False
editable: False
description: Server: Firewall Ausnahme
values: ["0", "1"]
default: ["1"]
[ProductProperty]
type: unicode
name: server_allow_sas
multivalue: False
editable: False
values: ["0", "1"]
default: ["1"]
[ProductProperty]
type: unicode
name: usepassword
multivalue: False
editable: False
description: Yes/No
values: ["no", "yes"]
default: ["yes"]
[ProductProperty]
type: unicode
name: passwort
multivalue: False
editable: True
description: Server Passwort
values: ["passwort"]
default: ["passwort"]
[Changelog]
tightvnc (2.5.2-1) testing; urgency=low
* Initial package
====== Old Version with EXE installer ======
Tested with opsi 4.0.1 \\
requiredWinstVersion >= 4.10.8.6 \\
For 32 Bit \\
Installation files at http://www.tightvnc.com/download.php
Send questions to //[[hungerharke@gmx.de|Thomas_H]] 2011/10/28 14:54//
Tree:
TightVNC.jpg
TightVNC.reg
Tightvnc_win7.reg
delsub.ins
setup.ins
tightvnc_*version*-setup.exe
uninstall.ins
__Hint__: The reg-files set predefined options for the whole network. Install TightVNC on a test-system, define the tightvnc-server, define a password and open the registry. \\
Save the following trees to the defined reg-files listed in the tree.
**Windows XP:** HKLM\Software\TightVNC\Server \\
**Win7 :** HKLM\Software\Wow6432Node\TightVNC\Server
==== setup.ins ====
[Initial]
LogLevel=9
; Log Errors in Logfile but don't abort:
ExitOnError=false
; Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false
[Actions]
requiredWinstVersion >= "4.10.8.6"
DefVar $UninstallProgram32$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
DefVar $Version$
DefVar $Inst_Cmd32$
DefVar $Inst_Cmd64$
DefVar $Inst_Prg$
DefVar $Uninst_Prg$
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$ = "TightVNC"
Set $Version$ = "2.0.4"
Set $MinimumSpace$ = "3 MB"
; the path were we find the product after the installation
Set $InstallDir32$ = "%ProgramFilesDir%\TightVNC"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
Set $Inst_Prg$ = "tightvnc-2.0.4-setup.exe"
Set $Uninst_Prg$ = "uninstall.exe"
Set $Inst_Cmd32$ = '/S'
; ----------------------------------------------------------------
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
else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".jpg" $ProductId$
if FileExists("%ScriptPath%\delsub.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, reserve license and get license key"
Sub_get_licensekey
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$ + " 32 Bit..."
comment "Start setup program"
Winbatch_install_32
Sub_check_exitcode
endif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Installing " + $ProductId$ + " 64 Bit..."
comment "Start setup program"
Winbatch_install_64
Sub_check_exitcode
endif
endif
[Winbatch_install_32]
%ScriptPath%\$Inst_Prg$ $Inst_Cmd32$
regedit /S "%ScriptPath%\TightVNC.reg"
[Winbatch_install_64]
%ScriptPath%\$Inst_Prg$ $Inst_Cmd32$
regedit /S "%ScriptPath%\TightVNC_win7.reg"
[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
==== uninstall.ins ====
[Initial]
LogLevel=9
; Log Errors in Logfile but don't abort:
ExitOnError=false
; Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false
[Actions]
requiredWinstVersion >= "4.10.8.6"
DefVar $UninstallProgram32$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ExitCode$
DefVar $ProductId$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $LicenseRequired$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
DefVar $Inst_Cmd$
DefVar $Inst_Prg$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
Set $ProductId$ = "TightVNC"
Set $InstallDir32$ = "%ProgramFilesDir%\TightVNC"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
Set $Inst_Prg$ = "uninstall.exe"
Set $Inst_Cmd$ = '/S'
; ----------------------------------------------------------------
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".jpg" $ProductId$
Message "Uninstalling " + $ProductId$ + " ..."
if FileExists("%ScriptPath%\delsub.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, free license used"
Sub_free_license
endif
[Sub_free_license]
comment "License management is enabled and will be used"
comment "Trying to free license used for the product"
DefVar $result$
Set $result$ = FreeLicense($LicensePool$)
; If there is an assignment of a license pool to the product, it is possible to use
; Set $result$ = FreeLicense("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
==== delsub.ins ====
killtask "tvnserver.exe"
if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only")
Message "Uninstalling " + $ProductId$ + " 32 Bit..."
if FileExists($UninstallProgram32$)
comment "Uninstall program found, starting uninstall"
Winbatch_uninstall_32
comment "Removing "+$InstallDir32$
Files_uninstall_32
sub_check_exitcode
endif
Mendif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Uninstalling " + $ProductId$ + " 64 Bit..."
; Achtung, nachfolgende Hinweise auf ...32 sind keine Fehler - TightVNC gibt es derzeit nur als 32-Bit-Variante!
if FileExists($UninstallProgram32$)
comment "Uninstall program found, starting uninstall"
Winbatch_uninstall_32
comment "Removing "+$InstallDir32$
Files_uninstall_32
sub_check_exitcode
endif
endif
[Winbatch_uninstall_32]
"$InstallDir32$\$Inst_Prg$" $Inst_Cmd$
[Files_uninstall_32]
; Example for recursively deleting the installation directory (don't forget the trailing backslash):
;
delete -sf "$InstallDir32$\"
[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