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$

QR Code
QR Code userspace:paint.net (generated for current page)