====== Paint.net 3.5.10 ======
Script by Der-Matze \\
Comments and improvements welcome \\
Tested with opsi 4.0.1 \\
Tested with opsi-winst 4.10.x - 4.11.1.6 \\
Tested with Windows XP Professional and Windows 7 Enterprise x64 \\
Installation Script for Paint.net \\
Uninstallation Script for Paint.net Versions 3.5.6 - 3.5.10 \\
This script uses the check_msi-exitcode script: https://forum.opsi.org/wiki/userspace:check_msi-exitcode \\
The installation file can be downloaded from: http://www.getpaint.net/download.html \\
Unattended Installation Info: http://www.getpaint.net/doc/latest/UnattendedInstallation.html \\
==== Install.ins ====
[Initial]
;Standard Text, der während der Installation angezeigt wird
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError = false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages = on
;Single-Step Mode nicht verwenden
TraceMode = off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop = false
[Actions]
;Variable für die Ermittlung des Betriebssystems
DefVar $OS$
Set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion
DefVar $NTVersion$
Set $NTVersion$ = GetNTVersion
;Variable zur Ermittlung der Systemarchitektur
DefVar $SystemType$
Set $SystemType$ = GetSystemType
;Name des Produkts (max. 12 Zeichen)
DefVar $ProductName$
Set $ProductName$ = "Paint.NET"
;Vollständiger Produktname incl. Versionsnummer
DefVar $ProductNameFull1$
Set $ProductNameFull1$ = "Paint.NET 3.5.10"
;Dateiname des Produktbildes mit Erweiterung
DefVar $ProductPicture$
Set $ProductPicture$ = "paint.png"
;Dateinamen der zu installierenden MSI-Pakete
DefVar $Executable1$
Set $Executable1$ = "PaintDotNet.x86.msi"
;Dateinamen der zu installierenden MSI-Pakete
DefVar $Executable2$
Set $Executable2$ = "PaintDotNet.x64.msi"
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens
Message "Installiere "+$ProductNameFull1$
;Prüfen der Winst Version
requiredWinstVersion >= "4.11"
;$ProductPicture$ und $ProductName$ anzeigen
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
;Freien Speicherplatz ermitteln
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
isFatalError
endif
;OS-Version ermitteln
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
if $SystemType$ = "x86 System"
Winbatch_Install_32Bit
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
if $SystemType$ = "64 Bit System"
Winbatch_Install_64Bit
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
else
LogError "Kein kompatibles Betriebssystem installiert"
isFatalError
endif
[Winbatch_Install_32Bit]
msiexec.exe /i "%SCRIPTPATH%\$Executable1$" /qb-! DESKTOPSHORTCUT=0
[Winbatch_Install_64Bit]
msiexec.exe /i "%SCRIPTPATH%\$Executable2$" /qb-! DESKTOPSHORTCUT=0
==== Uninstall.ins ====
[Initial]
;Standard Text, der während der Deinstallation angezeigt wird
Message = Bitte warten, das Produkt wird deinstalliert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError = false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages = on
;Single-Step Mode nicht verwenden
TraceMode = off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop = false
[Actions]
;Name des Produkts (max. 12 Zeichen)
DefVar $ProductName$
Set $ProductName$ = "Paint.NET"
;Dateiname des Produktbildes mit Erweiterung
DefVar $ProductPicture$
Set $ProductPicture$ = "paint.png"
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;$ProductPicture$ und $ProductName$ anzeigen
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
sub "%ScriptPath%\SubUninstall.ins"
==== SubUninstall.ins ====
;Variable für den msiexec Aufruf zur Deinstallation
DefVar $UninstallCommand$
;Variable für die jeweilige Version. Wird aus der Registry ausgelesen
DefVar $DisplayName$
;Paint.NET v3.5.6 32-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{639673E9-D53F-44F4-A046-485C8A6ADA15}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {639673E9-D53F-44F4-A046-485C8A6ADA15} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.6 64-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{639673E9-D53F-44F4-A046-485C8A6ADA16}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {639673E9-D53F-44F4-A046-485C8A6ADA16} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.7 32-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{45212F71-750F-4B98-8931-2F35DBE6B661}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {45212F71-750F-4B98-8931-2F35DBE6B661} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.7 64-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{45212F71-750F-4B98-8931-2F35DBE6B662}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {45212F71-750F-4B98-8931-2F35DBE6B662} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.8 32-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9CF4A37B-A8C4-44D7-8C53-13B9D9594BB2}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {9CF4A37B-A8C4-44D7-8C53-13B9D9594BB2} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.8 64-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9CF4A37B-A8C4-44D7-8C53-13B9D9594BB3}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {9CF4A37B-A8C4-44D7-8C53-13B9D9594BB3} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.10 32-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{529125EF-E3AC-4B74-97E6-F688A7C0F1BF}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {529125EF-E3AC-4B74-97E6-F688A7C0F1BF} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
;Paint.NET v3.5.10 64-Bit deinstallieren, wenn es in der Registry gefunden wurde
Set $DisplayName$ = GetRegistrystringvalueSysNative("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{529125EF-E3AC-4B74-97E6-F688A7C0F1C0}] DisplayName")
if not ($DisplayName$ = "")
Message "Deinstalliere "+$DisplayName$
set $UninstallCommand$ = "MsiExec.exe /x {529125EF-E3AC-4B74-97E6-F688A7C0F1C0} /qb-!"
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
[Winbatch_Uninstall]
$UninstallCommand$