Adaptation of the opsi-template scripts for Notepad2.
Notepad2 is a fast and light-weight Notepad-like text editor with syntax highlighting.
Website of the author, with x86 and x64 installation files: http://www.flos-freeware.ch/notepad2.html
During the installation a notepad2.ini is copied to the installation directory of notepad2, which redirects notepad2 to use the ini file in the Application Data folder of the user. This way each user can mess with his own settings.
[Notepad2] Notepad2.ini=%APPDATA%\Notepad2.ini
[Notepad2] [Settings] SaveSettings=0 SaveRecentFiles=0 SaveFindReplace=0 CloseFind=0 CloseReplace=0 NoFindWrap=0 OpenWithDir=%USERPROFILE%\Desktop Favorites=%CSIDL:MYDOCUMENTS% PathNameFormat=2 WordWrap=0 WordWrapMode=0 WordWrapIndent=0 WordWrapSymbols=22 ShowWordWrapSymbols=0 MatchBraces=1 AutoCloseTags=0 HighlightCurrentLine=0 AutoIndent=1 ShowIndentGuides=0 TabsAsSpaces=0 TabIndents=1 BackspaceUnindents=0 TabWidth=8 IndentWidth=0 MarkLongLines=0 LongLinesLimit=72 LongLineMode=1 ShowSelectionMargin=0 ShowLineNumbers=1 ViewWhiteSpace=0 ViewEOLs=0 DefaultEncoding=0 SkipUnicodeDetection=0 LoadASCIIasUTF8=0 NoEncodingTags=0 DefaultEOLMode=0 FixLineEndings=1 FixTrailingBlanks=0 PrintHeader=1 PrintFooter=0 PrintColorMode=3 PrintZoom=10 PrintMarginLeft=2000 PrintMarginTop=2000 PrintMarginRight=2000 PrintMarginBottom=2000 SaveBeforeRunningTools=0 FileWatchingMode=0 ResetFileWatching=1 EscFunction=0 AlwaysOnTop=0 MinimizeToTray=0 TransparentMode=0 ToolbarButtons=1 2 3 4 0 5 6 0 7 8 9 0 10 11 0 12 0 13 14 0 15 16 0 17 ShowToolbar=1 ShowStatusbar=1 EncodingDlgSizeX=256 EncodingDlgSizeY=262 RecodeDlgSizeX=256 RecodeDlgSizeY=262 FileMRUDlgSizeX=412 FileMRUDlgSizeY=376 OpenWithDlgSizeX=384 OpenWithDlgSizeY=386 FavoritesDlgSizeX=334 FavoritesDlgSizeY=316 FindReplaceDlgPosX=0 FindReplaceDlgPosY=0 [Window] 1600x900 PosX=744 1600x900 PosY=16 1600x900 SizeX=840 1600x900 SizeY=840 1600x900 Maximized=0 [Custom Colors] 01=#000000 02=#0A246A 03=#3A6EA5 04=#003CE6 05=#006633 06=#608020 07=#648000 08=#A46000 09=#FFFFFF 10=#FFFFE2 11=#FFF1A8 12=#FFC000 13=#FF4000 14=#C80000 15=#B000B0 16=#B28B40 [Styles] Use2ndDefaultStyle=0 DefaultScheme=0 AutoSelect=1 SelectDlgSizeX=304 SelectDlgSizeY=324 [Recent Files] [Recent Find] [Recent Replace]
[Package] version: 1 depends: incremental: False [Product] type: localboot id: notepad2 name: Notepad2 Text Editor description: Notepad2 is a fast and lightweight Notepad-like text editor with syntax highlighting. advice: version: 4.2.25 priority: 0 licenseRequired: False productClasses: setupScript: setup3264.ins uninstallScript: uninstall3264.ins updateScript: alwaysScript: onceScript: customScript: userLoginScript: [Changelog] notepad2 (4.2.25-1) testing; urgency=low * Initial package -- ICT <ict@gcecad-service.nl> Thu, 03 Apr 2014 19:01:31 +0000
; 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$ = "notepad2" Set $MinimumSpace$ = "50 MB" ; the path were we find the product after the installation Set $InstallDir32$ = "%ProgramFiles32Dir%\" + $ProductId$ Set $InstallDir64$ = "%ProgramFiles64Dir%\" + $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 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 comment "Copy files to all userprofiles" Files_install_allusers /AllNTUserProfiles 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 comment "Copy files to all userprofiles" Files_install_allusers /AllNTUserProfiles comment "Create shortcuts" LinkFolder_install endif [Winbatch_install_32] "%ScriptPath%\files\Notepad2_4.2.25_x86.exe" /silent [Files_install_32] copy -s "%ScriptPath%\files\programfiles\Notepad2.ini" "$InstallDir32$" [Winbatch_install_64] "%ScriptPath%\files\Notepad2_4.2.25_x64.exe" /silent [Files_install_64] copy -s "%ScriptPath%\files\programfiles\Notepad2.ini" "$InstallDir64$" [Files_install_allusers] copy -s "%ScriptPath%\files\appdata\Notepad2.ini" "%UserProfileDir%\Application Data\" [Registry_install] ; 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 [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
; 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$ = "notepad2" Set $InstallDir32$ = "%ProgramFiles32Dir%\" + $ProductId$ Set $InstallDir64$ = "%ProgramFiles64Dir%\" + $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
; 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 DefVar $UninstallProgram32$ DefVar $UninstallProgram64$ Set $UninstallProgram32$ = $InstallDir32$ + "\Notepad2.inf" Set $UninstallProgram64$ = $InstallDir64$ + "\Notepad2.inf" if ($INST_SystemType$ = "x86 System") ;and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") Message "Uninstalling " + $ProductId$ + "..." 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_allusers /AllNTUserProfiles 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$ + "..." 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_allusers /AllNTUserProfiles comment "Cleanup registry" Registry_uninstall /64Bit endif comment "Delete program shortcuts" LinkFolder_uninstall [Winbatch_uninstall_32] rundll32.exe advpack.dll,LaunchINFSectionEx "$UninstallProgram32$",DefaultUninstall,,8,N [Files_uninstall_32] ; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; ; delete -sf "$InstallDir32$\" [Winbatch_uninstall_64] rundll32.exe advpack.dll,LaunchINFSectionEx "$UninstallProgram64$",DefaultUninstall,,8,N [Files_uninstall_64] ; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; ; delete -sf "$InstallDir64$\" [Files_uninstall_allusers] delete -f "%AppdataDir%\Notepad2.ini" [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