;* Notepad3 - Installer script ;* ;* (c) Rizonesoft 2008-2021 ; Requirements: ; Inno Setup: https://www.jrsoftware.org/isdl.php ; Preprocessor related stuff #if VER < EncodeVer(6,0,5) #error Update your Inno Setup version (6.0.5 or newer) #endif #define bindir "..\Bin" #ifnexist bindir + "\Release_x86_v142\Notepad3.exe" #error Compile Notepad3 x86 first #endif #ifnexist bindir + "\Release_x86_v142\minipath.exe" #error Compile MiniPath x86 first #endif #ifnexist bindir + "\Release_x64_v142\Notepad3.exe" #error Compile Notepad3 x64 first #endif #ifnexist bindir + "\Release_x64_v142\minipath.exe" #error Compile MiniPath x64 first #endif #define app_name "Notepad3" #define app_publisher "Rizonesoft" #define app_version GetFileVersion(bindir + "\Release_x86_v142\Notepad3.exe") #define app_copyright "Copyright © 2008-2021 Rizonesoft" #define quick_launch "{userappdata}\Microsoft\Internet Explorer\Quick Launch" [Setup] AppId={#app_name} AppName={#app_name} AppVersion={#app_version} AppVerName={#app_name} {#app_version} AppPublisher={#app_publisher} AppPublisherURL=https://rizonesoft.com AppSupportURL=https://rizonesoft.com AppUpdatesURL=https://rizonesoft.com AppContact=https://rizonesoft.com AppCopyright={#app_copyright} VersionInfoVersion={#app_version} UninstallDisplayIcon={app}\Notepad3.exe UninstallDisplayName={#app_name} {#app_version} DefaultDirName={commonpf}\Notepad3 LicenseFile="..\License.txt" OutputDir=.\Packages OutputBaseFilename={#app_name}_{#app_version}_Setup WizardStyle=modern WizardSmallImageFile=.\Resources\WizardSmallImageFile.bmp Compression=lzma2/max InternalCompressLevel=max SolidCompression=yes EnableDirDoesntExistWarning=no AllowNoIcons=yes ShowTasksTreeLines=yes DisableProgramGroupPage=yes DisableReadyPage=yes DisableWelcomePage=yes AllowCancelDuringInstall=yes UsedUserAreasWarning=no MinVersion=0,6.1sp1 ArchitecturesAllowed=x86 x64 ArchitecturesInstallIn64BitMode=x64 #ifexist "..\signinfo_notepad3.txt" SignTool=MySignTool #endif CloseApplications=true SetupMutex='{#app_name}' + '_setup_mutex' [Languages] Name: en; MessagesFile: compiler:Default.isl [Messages] ;BeveledLabel ={#app_name} {#app_version} - Compiled with VC2015 SetupAppTitle =Setup - {#app_name} SetupWindowTitle =Setup - {#app_name} [CustomMessages] en.msg_AppIsRunning =Setup has detected that {#app_name} is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit. en.msg_AppIsRunningUninstall =Uninstall has detected that {#app_name} is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit. en.msg_DeleteSettings =Do you also want to delete {#app_name}'s settings?%n%nIf you plan on installing {#app_name} again then you do not have to delete them. #if defined(sse_required) en.msg_simd_sse =This build of {#app_name} requires a CPU with SSE extension support.%n%nYour CPU does not have those capabilities. #elif defined(sse2_required) en.msg_simd_sse2 =This build of {#app_name} requires a CPU with SSE2 extension support.%n%nYour CPU does not have those capabilities. #endif en.tsk_AllUsers =For all users en.tsk_CurrentUser =For the current user only en.tsk_Other =Other tasks: en.tsk_ResetSettings =Reset {#app_name}'s settings en.tsk_RemoveDefault =Restore Windows Notepad en.tsk_SetDefault =Replace Windows Notepad with {#app_name} en.tsk_StartMenuIcon =Create a Start Menu shortcut en.tsk_LaunchWelcomePage =Important Release Information! en.tsk_RemoveOpenWith =Remove "Open with {#app_name}" from the context menu en.tsk_SetOpenWith =Add "Open with {#app_name}" to the context menu [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked Name: desktopicon\user; Description: {cm:tsk_CurrentUser}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked exclusive Name: desktopicon\common; Description: {cm:tsk_AllUsers}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked exclusive Name: startup_icon; Description: {cm:tsk_StartMenuIcon}; GroupDescription: {cm:AdditionalIcons} Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked; OnlyBelowVersion: 6.01 Name: reset_settings; Description: {cm:tsk_ResetSettings}; GroupDescription: {cm:tsk_Other}; Flags: checkedonce unchecked; Check: SettingsExistCheck() Name: set_default; Description: {cm:tsk_SetDefault}; GroupDescription: {cm:tsk_Other}; Check: not DefaulNotepadCheck() Name: remove_default; Description: {cm:tsk_RemoveDefault}; GroupDescription: {cm:tsk_Other}; Flags: checkedonce unchecked; Check: DefaulNotepadCheck() Name: set_openwith; Description: {cm:tsk_SetOpenWith}; GroupDescription: {cm:tsk_Other}; Check: not OpenWithCheck() Name: remove_openwith; Description: {cm:tsk_RemoveOpenWith}; GroupDescription: {cm:tsk_Other}; Flags: checkedonce unchecked; Check: OpenWithCheck() [Files] Source: {#bindir}\Release_x64_v142\Notepad3.exe; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\minipath.exe; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\grepWinNP3.exe; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\Notepad3.exe; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\minipath.exe; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\grepWinNP3.exe; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: "..\License.txt"; DestDir: {app}; Flags: ignoreversion Source: "..\Readme.txt"; DestDir: {app}; Flags: ignoreversion Source: "..\grepWinNP3\grepWinLicense.txt"; DestDir: {app}; Flags: ignoreversion; Source: "..\grepWinNP3\translationsNP3\*.lang"; DestDir: {app}\lng\gwLng; Flags: ignoreversion; Check: Is64BitInstallMode() Source: "..\grepWinNP3\translationsNP3\*.lang"; DestDir: {app}\lng\gwLng; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: Notepad3.ini; DestDir: {userappdata}\Rizonesoft\Notepad3; Flags: onlyifdoesntexist uninsneveruninstall Source: minipath.ini; DestDir: {userappdata}\Rizonesoft\Notepad3; Flags: onlyifdoesntexist uninsneveruninstall Source: themes\Dark.ini; DestDir: {userappdata}\Rizonesoft\Notepad3\themes; Flags: onlyifdoesntexist uninsneveruninstall Source: themes\Obsidian.ini; DestDir: {userappdata}\Rizonesoft\Notepad3\themes; Flags: onlyifdoesntexist uninsneveruninstall Source: themes\Sombra.ini; DestDir: {userappdata}\Rizonesoft\Notepad3\themes; Flags: onlyifdoesntexist uninsneveruninstall Source: {#bindir}\Release_x64_v142\lng\mplng.dll; DestDir: {app}\lng; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\np3lng.dll; DestDir: {app}\lng; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\af-ZA\mplng.dll.mui; DestDir: {app}\lng\af-ZA; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\af-ZA\np3lng.dll.mui; DestDir: {app}\lng\af-ZA; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\be-BY\mplng.dll.mui; DestDir: {app}\lng\be-BY; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\be-BY\np3lng.dll.mui; DestDir: {app}\lng\be-BY; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\de-DE\mplng.dll.mui; DestDir: {app}\lng\de-DE; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\de-DE\np3lng.dll.mui; DestDir: {app}\lng\de-DE; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\el-GR\mplng.dll.mui; DestDir: {app}\lng\el-GR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\el-GR\np3lng.dll.mui; DestDir: {app}\lng\el-GR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\en-GB\mplng.dll.mui; DestDir: {app}\lng\en-GB; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\en-GB\np3lng.dll.mui; DestDir: {app}\lng\en-GB; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\es-419\mplng.dll.mui; DestDir: {app}\lng\es-419; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\es-419\np3lng.dll.mui; DestDir: {app}\lng\es-419; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\es-ES\mplng.dll.mui; DestDir: {app}\lng\es-ES; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\es-ES\np3lng.dll.mui; DestDir: {app}\lng\es-ES; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\fr-FR\mplng.dll.mui; DestDir: {app}\lng\fr-FR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\fr-FR\np3lng.dll.mui; DestDir: {app}\lng\fr-FR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\hi-IN\mplng.dll.mui; DestDir: {app}\lng\hi-IN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\hi-IN\np3lng.dll.mui; DestDir: {app}\lng\hi-IN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\hu-HU\mplng.dll.mui; DestDir: {app}\lng\hu-HU; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\hu-HU\np3lng.dll.mui; DestDir: {app}\lng\hu-HU; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\id-ID\mplng.dll.mui; DestDir: {app}\lng\id-ID; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\id-ID\np3lng.dll.mui; DestDir: {app}\lng\id-ID; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\it-IT\mplng.dll.mui; DestDir: {app}\lng\it-IT; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\it-IT\np3lng.dll.mui; DestDir: {app}\lng\it-IT; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ja-JP\mplng.dll.mui; DestDir: {app}\lng\ja-JP; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ja-JP\np3lng.dll.mui; DestDir: {app}\lng\ja-JP; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ko-KR\mplng.dll.mui; DestDir: {app}\lng\ko-KR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ko-KR\np3lng.dll.mui; DestDir: {app}\lng\ko-KR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\nl-NL\mplng.dll.mui; DestDir: {app}\lng\nl-NL; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\nl-NL\np3lng.dll.mui; DestDir: {app}\lng\nl-NL; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pl-PL\mplng.dll.mui; DestDir: {app}\lng\pl-PL; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pl-PL\np3lng.dll.mui; DestDir: {app}\lng\pl-PL; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pt-BR\mplng.dll.mui; DestDir: {app}\lng\pt-BR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pt-BR\np3lng.dll.mui; DestDir: {app}\lng\pt-BR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pt-PT\mplng.dll.mui; DestDir: {app}\lng\pt-PT; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\pt-PT\np3lng.dll.mui; DestDir: {app}\lng\pt-PT; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ru-RU\mplng.dll.mui; DestDir: {app}\lng\ru-RU; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\ru-RU\np3lng.dll.mui; DestDir: {app}\lng\ru-RU; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\sk-SK\mplng.dll.mui; DestDir: {app}\lng\sk-SK; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\sk-SK\np3lng.dll.mui; DestDir: {app}\lng\sk-SK; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\sv-SE\mplng.dll.mui; DestDir: {app}\lng\sv-SE; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\sv-SE\np3lng.dll.mui; DestDir: {app}\lng\sv-SE; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\tr-TR\mplng.dll.mui; DestDir: {app}\lng\tr-TR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\tr-TR\np3lng.dll.mui; DestDir: {app}\lng\tr-TR; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\vi-VN\mplng.dll.mui; DestDir: {app}\lng\vi-VN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\vi-VN\np3lng.dll.mui; DestDir: {app}\lng\vi-VN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\zh-CN\mplng.dll.mui; DestDir: {app}\lng\zh-CN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\zh-CN\np3lng.dll.mui; DestDir: {app}\lng\zh-CN; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\zh-TW\mplng.dll.mui; DestDir: {app}\lng\zh-TW; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x64_v142\lng\zh-TW\np3lng.dll.mui; DestDir: {app}\lng\zh-TW; Flags: ignoreversion; Check: Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\mplng.dll; DestDir: {app}\lng; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\np3lng.dll; DestDir: {app}\lng; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\af-ZA\mplng.dll.mui; DestDir: {app}\lng\af-ZA; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\af-ZA\np3lng.dll.mui; DestDir: {app}\lng\af-ZA; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\be-BY\mplng.dll.mui; DestDir: {app}\lng\be-BY; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\be-BY\np3lng.dll.mui; DestDir: {app}\lng\be-BY; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\de-DE\mplng.dll.mui; DestDir: {app}\lng\de-DE; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\de-DE\np3lng.dll.mui; DestDir: {app}\lng\de-DE; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\el-GR\mplng.dll.mui; DestDir: {app}\lng\el-GR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\el-GR\np3lng.dll.mui; DestDir: {app}\lng\el-GR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\en-GB\mplng.dll.mui; DestDir: {app}\lng\en-GB; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\en-GB\np3lng.dll.mui; DestDir: {app}\lng\en-GB; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\es-419\mplng.dll.mui; DestDir: {app}\lng\es-419; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\es-419\np3lng.dll.mui; DestDir: {app}\lng\es-419; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\es-ES\mplng.dll.mui; DestDir: {app}\lng\es-ES; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\es-ES\np3lng.dll.mui; DestDir: {app}\lng\es-ES; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\fr-FR\mplng.dll.mui; DestDir: {app}\lng\fr-FR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\fr-FR\np3lng.dll.mui; DestDir: {app}\lng\fr-FR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\hi-IN\mplng.dll.mui; DestDir: {app}\lng\hi-IN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\hi-IN\np3lng.dll.mui; DestDir: {app}\lng\hi-IN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\hu-HU\mplng.dll.mui; DestDir: {app}\lng\hu-HU; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\hu-HU\np3lng.dll.mui; DestDir: {app}\lng\hu-HU; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\id-ID\mplng.dll.mui; DestDir: {app}\lng\id-ID; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\id-ID\np3lng.dll.mui; DestDir: {app}\lng\id-ID; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\it-IT\mplng.dll.mui; DestDir: {app}\lng\it-IT; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\it-IT\np3lng.dll.mui; DestDir: {app}\lng\it-IT; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ja-JP\mplng.dll.mui; DestDir: {app}\lng\ja-JP; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ja-JP\np3lng.dll.mui; DestDir: {app}\lng\ja-JP; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ko-KR\mplng.dll.mui; DestDir: {app}\lng\ko-KR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ko-KR\np3lng.dll.mui; DestDir: {app}\lng\ko-KR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\nl-NL\mplng.dll.mui; DestDir: {app}\lng\nl-NL; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\nl-NL\np3lng.dll.mui; DestDir: {app}\lng\nl-NL; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pl-PL\mplng.dll.mui; DestDir: {app}\lng\pl-PL; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pl-PL\np3lng.dll.mui; DestDir: {app}\lng\pl-PL; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pt-BR\mplng.dll.mui; DestDir: {app}\lng\pt-BR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pt-BR\np3lng.dll.mui; DestDir: {app}\lng\pt-BR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pt-PT\mplng.dll.mui; DestDir: {app}\lng\pt-PT; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\pt-PT\np3lng.dll.mui; DestDir: {app}\lng\pt-PT; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ru-RU\mplng.dll.mui; DestDir: {app}\lng\ru-RU; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\ru-RU\np3lng.dll.mui; DestDir: {app}\lng\ru-RU; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\sk-SK\mplng.dll.mui; DestDir: {app}\lng\sk-SK; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\sk-SK\np3lng.dll.mui; DestDir: {app}\lng\sk-SK; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\sv-SE\mplng.dll.mui; DestDir: {app}\lng\sv-SE; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\sv-SE\np3lng.dll.mui; DestDir: {app}\lng\sv-SE; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\tr-TR\mplng.dll.mui; DestDir: {app}\lng\tr-TR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\tr-TR\np3lng.dll.mui; DestDir: {app}\lng\tr-TR; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\vi-VN\mplng.dll.mui; DestDir: {app}\lng\vi-VN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\vi-VN\np3lng.dll.mui; DestDir: {app}\lng\vi-VN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\zh-CN\mplng.dll.mui; DestDir: {app}\lng\zh-CN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\zh-CN\np3lng.dll.mui; DestDir: {app}\lng\zh-CN; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\zh-TW\mplng.dll.mui; DestDir: {app}\lng\zh-TW; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: {#bindir}\Release_x86_v142\lng\zh-TW\np3lng.dll.mui; DestDir: {app}\lng\zh-TW; Flags: ignoreversion; Check: not Is64BitInstallMode() Source: Changes.txt; DestDir: {app}\Docs; Flags: ignoreversion Source: Docs\*.txt; DestDir: {app}\Docs; Flags: ignoreversion Source: Docs\crypto\*.txt; DestDir: {app}\Docs\crypto; Flags: ignoreversion Source: Docs\uthash\*.txt; DestDir: {app}\Docs\uthash; Flags: ignoreversion [Dirs] Name: "{userappdata}\Rizonesoft\Notepad3\Favorites" Name: "{userappdata}\Rizonesoft\Notepad3\themes" [Icons] Name: {commondesktop}\{#app_name}; Filename: {app}\Notepad3.exe; Tasks: desktopicon\common; Comment: {#app_name} {#app_version}; WorkingDir: {app}; AppUserModelID: {#app_publisher}.{#app_name}; IconFilename: {app}\Notepad3.exe; IconIndex: 0 Name: {userdesktop}\{#app_name}; Filename: {app}\Notepad3.exe; Tasks: desktopicon\user; Comment: {#app_name} {#app_version}; WorkingDir: {app}; AppUserModelID: {#app_publisher}.{#app_name}; IconFilename: {app}\Notepad3.exe; IconIndex: 0 Name: {commonprograms}\{#app_name}; Filename: {app}\Notepad3.exe; Tasks: startup_icon; Comment: {#app_name} {#app_version}; WorkingDir: {app}; AppUserModelID: {#app_publisher}.{#app_name}; IconFilename: {app}\Notepad3.exe; IconIndex: 0 Name: {#quick_launch}\{#app_name}; Filename: {app}\Notepad3.exe; Tasks: quicklaunchicon; Comment: {#app_name} {#app_version}; WorkingDir: {app}; IconFilename: {app}\Notepad3.exe; IconIndex: 0 [INI] Filename: {app}\Notepad3.ini; Section: Notepad3; Key: Notepad3.ini; String: %APPDATA%\Rizonesoft\Notepad3\Notepad3.ini Filename: {app}\minipath.ini; Section: minipath; Key: minipath.ini; String: %APPDATA%\Rizonesoft\Notepad3\minipath.ini Filename: {userappdata}\Rizonesoft\Notepad3\Notepad3.ini; Section: Settings; Key: Favorites; String: %APPDATA%\Rizonesoft\Notepad3\Favorites\ [Run] Filename: {app}\Notepad3.exe; Description: {cm:LaunchProgram,{#app_name}}; WorkingDir: {app}; Flags: nowait postinstall skipifsilent unchecked Filename: https://www.rizonesoft.com/downloads/notepad3/update/; Description: {cm:tsk_LaunchWelcomePage}; Flags: nowait postinstall shellexec skipifsilent unchecked [InstallDelete] Type: files; Name: {userdesktop}\{#app_name}.lnk; Check: not WizardIsTaskSelected('desktopicon\user') and IsUpgrade() Type: files; Name: {commondesktop}\{#app_name}.lnk; Check: not WizardIsTaskSelected('desktopicon\common') and IsUpgrade() Type: files; Name: {userstartmenu}\{#app_name}.lnk; Check: not WizardIsTaskSelected('startup_icon') and IsUpgrade() Type: files; Name: {#quick_launch}\{#app_name}.lnk; Check: not WizardIsTaskSelected('quicklaunchicon') and IsUpgrade(); OnlyBelowVersion: 6.01 Type: files; Name: {app}\Notepad3.ini Type: files; Name: {app}\Readme.txt Type: files; Name: {app}\minipath.ini Type: files; Name: {app}\grepWinNP3.ini [UninstallDelete] Type: files; Name: {app}\Notepad3.ini Type: files; Name: {app}\minipath.ini Type: files; Name: {app}\grepWinNP3.ini Type: dirifempty; Name: {app} [Code] const IFEO = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe'; function InitializeSetup: Boolean; begin Result := True; //Check for Processor SSE2 support. #if defined(sse2_required) if not IsSSE2Supported() then begin SuppressibleMsgBox(CustomMessage('msg_simd_sse2'), mbCriticalError, MB_OK, MB_OK); Result := False; end; #elif defined(sse_required) if not IsSSESupported() then begin SuppressibleMsgBox(CustomMessage('msg_simd_sse'), mbCriticalError, MB_OK, MB_OK); Result := False; end; #endif end; // Check if Notepad3 has replaced Windows Notepad function DefaulNotepadCheck(): Boolean; var sDebugger: String; begin if RegQueryStringValue(HKLM, IFEO, 'Debugger', sDebugger) and (sDebugger = (ExpandConstant('"{app}\Notepad3.exe" /z'))) then begin Log('Custom Code: {#app_name} is set as the default notepad'); Result := True; end else begin Log('Custom Code: {#app_name} is NOT set as the default notepad'); Result := False; end; end; // Check if "Open with Notepad3" is installed. function OpenWithCheck(): Boolean; var sOpenWith: String; begin if RegQueryStringValue(HKEY_CLASSES_ROOT, '*\shell\Open with Notepad3', 'Icon', sOpenWith) and (sOpenWith = (ExpandConstant('{app}\Notepad3.exe,0'))) then begin Log('Custom Code: {#app_name} Open with Notepad3 is set.'); Result := True; end else begin Log('Custom Code: {#app_name} Open with Notepad3 is not set.'); Result := False; end; end; #if defined(sse_required) || defined(sse2_required) function IsProcessorFeaturePresent(Feature: Integer): Boolean; external 'IsProcessorFeaturePresent@kernel32.dll stdcall'; #endif #if defined(sse_required) function IsSSESupported(): Boolean; begin // PF_XMMI_INSTRUCTIONS_AVAILABLE Result := IsProcessorFeaturePresent(6); end; #elif defined(sse2_required) function IsSSE2Supported(): Boolean; begin // PF_XMMI64_INSTRUCTIONS_AVAILABLE Result := IsProcessorFeaturePresent(10); end; #endif function IsOldBuildInstalled(sInfFile: String): Boolean; begin if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Notepad2') and FileExists(ExpandConstant('{commonpf}\Notepad2\' + sInfFile)) then Result := True else Result := False; end; function IsUpgrade(): Boolean; var sPrevPath: String; begin sPrevPath := WizardForm.PrevAppDir; Result := (sPrevPath <> ''); end; // Check if Notepad3's settings exist function SettingsExistCheck(): Boolean; begin if FileExists(ExpandConstant('{userappdata}\Rizonesoft\Notepad3\Notepad3.ini')) then begin Log('Custom Code: Settings are present'); Result := True; end else begin Log('Custom Code: Settings are NOT present'); Result := False; end; end; function UninstallOldVersion(sInfFile: String): Integer; var iResultCode: Integer; begin // Return Values: // 0 - no idea // 1 - error executing the command // 2 - successfully executed the command // default return value Result := 0; // TODO: use RegQueryStringValue if not Exec('rundll32.exe', ExpandConstant('advpack.dll,LaunchINFSectionEx ' + '"{commonpf}\Notepad2\' + sInfFile +'",DefaultUninstall,,8,N'), '', SW_HIDE, ewWaitUntilTerminated, iResultCode) then begin Result := 1; end else begin Result := 2; Sleep(200); end; end; function ShouldSkipPage(PageID: Integer): Boolean; begin // Hide the license page if IsUpgrade() if IsUpgrade() and (PageID = wpLicense) then Result := True; end; procedure AddReg(); begin RegWriteStringValue(HKCR, 'Applications\notepad3.exe', 'AppUserModelID', 'Rizonesoft.Notepad3'); RegWriteStringValue(HKCR, 'Applications\notepad3.exe\shell\open\command', '', ExpandConstant('"{app}\Notepad3.exe" "%1"')); RegWriteStringValue(HKCR, '*\OpenWithList\notepad3.exe', '', ''); end; procedure CleanUpSettings(); begin DeleteFile(ExpandConstant('{userappdata}\Rizonesoft\Notepad3\Notepad3.ini')); DeleteFile(ExpandConstant('{userappdata}\Rizonesoft\Notepad3\minipath.ini')); DeleteFile(ExpandConstant('{userappdata}\Rizonesoft\Notepad3\grepWinNP3.ini')); RemoveDir(ExpandConstant('{userappdata}\Rizonesoft\Notepad3')); end; procedure RemoveReg(); begin RegDeleteKeyIncludingSubkeys(HKCR, 'Applications\notepad3.exe'); RegDeleteKeyIncludingSubkeys(HKCR, '*\OpenWithList\notepad3.exe'); RegDeleteKeyIncludingSubkeys(HKCR, '*\shell\Open with Notepad3'); end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpSelectTasks then WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) else if CurPageID = wpFinished then WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish); end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin if WizardIsTaskSelected('reset_settings') then CleanUpSettings(); if IsOldBuildInstalled('Uninstall.inf') or IsOldBuildInstalled('Notepad2.inf') then begin if IsOldBuildInstalled('Uninstall.inf') then begin Log('Custom Code: The old build is installed, will try to uninstall it'); if UninstallOldVersion('Uninstall.inf') = 2 then Log('Custom Code: The old build was successfully uninstalled') else Log('Custom Code: Something went wrong when uninstalling the old build'); end; if IsOldBuildInstalled('Notepad2.inf') then begin Log('Custom Code: The official Notepad2 build is installed, will try to uninstall it'); if UninstallOldVersion('Notepad2.inf') = 2 then Log('Custom Code: The official Notepad2 build was successfully uninstalled') else Log('Custom Code: Something went wrong when uninstalling the official Notepad2 build'); end; // This is the case where the old build is installed; the DefaulNotepadCheck() returns true // and the set_default task isn't selected if not WizardIsTaskSelected('remove_default') then RegWriteStringValue(HKLM, IFEO, 'Debugger', ExpandConstant('"{app}\Notepad3.exe" /z')); end; end; if CurStep = ssPostInstall then begin if WizardIsTaskSelected('set_default') then RegWriteStringValue(HKLM, IFEO, 'Debugger', ExpandConstant('"{app}\Notepad3.exe" /z')); if WizardIsTaskSelected('remove_default') then RegDeleteValue(HKLM, IFEO, 'Debugger'); RegDeleteKeyIfEmpty(HKLM, IFEO); if WizardIsTaskSelected('set_openwith') then RegWriteStringValue(HKCR, '*\shell\Open with Notepad3', 'Icon', ExpandConstant('{app}\Notepad3.exe,0')); RegWriteStringValue(HKCR, '*\shell\Open with Notepad3\command', '', ExpandConstant('"{app}\Notepad3.exe" "%1"')); if WizardIsTaskSelected('remove_openwith') then begin RegDeleteKeyIncludingSubkeys(HKCR, '*\shell\Open with Notepad3'); end; // Always add Notepad3's AppUserModelID and the rest registry values AddReg(); end; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin // When uninstalling, ask the user to delete Notepad3's settings if CurUninstallStep = usUninstall then begin if SettingsExistCheck() then begin if SuppressibleMsgBox(CustomMessage('msg_DeleteSettings'), mbConfirmation, MB_YESNO or MB_DEFBUTTON2, IDNO) = IDYES then CleanUpSettings(); end; if DefaulNotepadCheck() then RegDeleteValue(HKLM, IFEO, 'Debugger'); RegDeleteKeyIfEmpty(HKLM, IFEO); RemoveReg(); end; end; procedure InitializeWizard(); begin WizardForm.SelectTasksLabel.Hide; WizardForm.TasksList.Top := 0; WizardForm.TasksList.Height := PageFromID(wpSelectTasks).SurfaceHeight; end;