Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;* Process Hacker 2 - Installer script
- ;*
- ;* Copyright (C) 2011 wj32
- ;* Copyright (C) 2010-2016 XhmikosR
- ;* Updated (C) 2017, VictorVG @ VikSoft.Ru
- ;*
- ;* This file is part of Process Hacker.
- ;*
- ;* Process Hacker is free software; you can redistribute it and/or modify
- ;* it under the terms of the GNU General Public License as published by
- ;* the Free Software Foundation, either version 3 of the License, or
- ;* (at your option) any later version.
- ;*
- ;* Process Hacker is distributed in the hope that it will be useful,
- ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;* GNU General Public License for more details.
- ;*
- ;* You should have received a copy of the GNU General Public License
- ;* along with Process Hacker. If not, see <http://www.gnu.org/licenses/>.
- ;
- ; Last updated 17.12.2017 23:20:48 +0300 VictorVG @ VikSoft.Ru
- ; update script version up to v14.0.57 (non oficial).
- ;
- ; Requirements:
- ; *Inno Setup: http://www.jrsoftware.org/isdl.php
- ;
- ; WARNING:
- ;
- ; Driver name KProcessHacker2 in to [Code] section does not change or the program
- ; will fail!
- ;
- #if VER < EncodeVer(5,5,9)
- #error Update your Inno Setup version (5.5.9 or newer)
- #endif
- #include "..\..\ProcessHacker\include\phres.h"
- ; Include the custom messages and services
- #include "Custom_Messages_Full.iss"
- #include "Services_Full.iss"
- #define installer_build_number "14.0.57"
- #define copyright "Copyright © 2010-2017, Process Hacker Team. Licensed under the GNU GPL, v3.0"
- #define website_url "http://processhacker.sourceforge.net/"
- #if defined(TWO_DIGIT_VER)
- #define app_version str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR)
- #define app_version_long str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR) + ".0" + "." + str(PHAPP_VERSION_REVISION)
- #define app_version_full str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR) + " (r" + str(PHAPP_VERSION_REVISION) + ")"
- #elif defined(THREE_DIGIT_VER)
- #define app_version str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR)
- #define app_version_long str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR) + "." + str(PHAPP_VERSION_BUILD) + "." + str(PHAPP_VERSION_REVISION)
- #define app_version_full str(PHAPP_VERSION_MAJOR) + "." + str(PHAPP_VERSION_MINOR) + " (r" + str(PHAPP_VERSION_REVISION) + ")"
- #endif
- #define installer_build_date GetDateTimeString('mmm, d yyyy', '', '')
- #define quick_launch "{userappdata}\Microsoft\Internet Explorer\Quick Launch"
- [Setup]
- AppID=Process_Hacker
- AppCopyright={#copyright}
- AppContact=http://wj32.org/processhacker/forums/
- AppName=Process Hacker
- AppVerName=Process Hacker {#app_version_full}
- AppVersion={#app_version_long}
- AppPublisher=Process Hacker
- AppPublisherURL={#website_url}
- AppSupportURL=http://wj32.org/processhacker/forums/
- AppUpdatesURL={#website_url}
- UninstallDisplayName=Process Hacker {#app_version_full}
- DefaultDirName={pf}\Process Hacker
- DefaultGroupName=Process Hacker
- VersionInfoCompany=Process Hacker
- VersionInfoCopyright={#copyright}
- VersionInfoDescription=Process Hacker Setup
- VersionInfoProductName=Process Hacker
- VersionInfoProductTextVersion={#app_version_full}
- VersionInfoProductVersion={#app_version_long}
- VersionInfoTextVersion={#app_version_full}
- VersionInfoVersion={#app_version_long}
- MinVersion=0,6.1
- LicenseFile=..\..\LICENSE.txt
- SetupIconFile=..\..\ProcessHacker\ProcessHacker.ico
- UninstallDisplayIcon={app}\ProcessHacker.exe
- WizardImageFile=Icons_Full\ProcessHackerLarge.bmp
- WizardSmallImageFile=Icons_Full\ProcessHackerSmall.bmp
- OutputDir=.
- OutputBaseFilename=processhacker-{#app_version}-setup
- AllowNoIcons=yes
- Compression=lzma2/max
- InternalCompressLevel=max
- SolidCompression=yes
- EnableDirDoesntExistWarning=no
- ShowTasksTreeLines=yes
- PrivilegesRequired=admin
- CloseApplications=yes
- DisableDirPage=auto
- DisableProgramGroupPage=auto
- AppMutex=Global\ProcessHackerMutant
- ArchitecturesInstallIn64BitMode=x64
- AppComments=Extended build by VictorVG @ VikSoft.Ru
- [Languages]
- Name: en; MessagesFile: compiler:Default.isl
- [Messages]
- WelcomeLabel1=[name/ver]
- WelcomeLabel2=This will install [name] on your computer.%n%nIt is recommended that you close all other applications before continuing.
- BeveledLabel=Process Hacker v{#app_version_full}, Setup v{#installer_build_number} built on {#installer_build_date}
- SetupAppTitle=Setup - Process Hacker
- SetupWindowTitle=Setup - Process Hacker
- [Types]
- Name: full; Description: {cm:tsk_full}
- Name: minimal; Description: {cm:tsk_minimal}
- Name: custom; Description: {cm:tsk_custom}; Flags: iscustom
- [Components]
- Name: "main"; Description: "{cm:comp_Main_App}"; Types: full minimal custom; Flags: fixed
- Name: "peview"; Description: "{cm:comp_PE_Viewer}"; Types: full minimal custom; Flags: disablenouninstallwarning
- Name: "plugins"; Description: "{cm:comp_Plugins}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\atomtable"; Description: "{cm:comp_AtomTable}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\avgcpu"; Description: "{cm:comp_AvgCPU}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\dbgview"; Description: "{cm:comp_DbgView}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\dnscache"; Description: "{cm:comp_DnsResolver}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\dotnettools"; Description: "{cm:comp_DotNetTools}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\extendednotifications"; Description: "{cm:comp_ExtendedNotifications}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\extendedservices"; Description: "{cm:comp_ExtendedServices}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\extendedtools"; Description: "{cm:comp_ExtendedTools}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\forceshutdown"; Description: "{cm:comp_ForceShutdown}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\fwmon"; Description: "{cm:comp_FwMon}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\hardwaredevices"; Description: "{cm:comp_HardwareDevices}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\hexpid"; Description: "{cm:comp_HexPID}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\livedump"; Description: "{cm:comp_LKD}"; Types: full custom; Flags: disablenouninstallwarning; MinVersion: 0,6.3
- Name: "plugins\memext"; Description: "{cm:comp_MemEx}"; Types: full custom; Flags: disablenouninstallwarning; MinVersion: 0,6.3
- Name: "plugins\networktools"; Description: "{cm:comp_NetworkTools}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\nvgpu"; Description: "{cm:comp_NvGPU}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\objectmanager"; Description: "{cm:comp_ObjectManager}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\onlinechecks"; Description: "{cm:comp_OnlineChecks}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\perfmon"; Description: "{cm:comp_PerfMon}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\poolmon"; Description: "{cm:comp_PoolMon}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\productpolicy"; Description: "{cm:comp_ProductPolicy}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\rotviewer"; Description: "{cm:comp_ROTViewerPlugin}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\sbiesupport"; Description: "{cm:comp_SbieSupport}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\secexp"; Description: "{cm:comp_SecurityExplorer}"; Types: full custom; Flags: disablenouninstallwarning; OnlyBelowVersion: 0,6.3
- Name: "plugins\setcrtical"; Description: "{cm:comp_SetCritical}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\srvbakrst"; Description: "{cm:comp_ServiceBackupRestore}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\taskbarext"; Description: "{cm:comp_TaskbarExt}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\terminator"; Description: "{cm:comp_Terminator}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\toolstatus"; Description: "{cm:comp_ToolStatus}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\trustinst"; Description: "{cm:comp_TrustInst}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\uefi"; Description: "{cm:comp_UEFI}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\updater"; Description: "{cm:comp_Updater}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\usernotes"; Description: "{cm:comp_UserNotes}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\waitchain"; Description: "{cm:comp_waitchain}"; Types: full custom; Flags: disablenouninstallwarning
- Name: "plugins\windowexplorer"; Description: "{cm:comp_WindowExplorer}"; Types: full custom; Flags: disablenouninstallwarning
- [Tasks]
- Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
- Name: desktopicon\user; Description: {cm:tsk_CurrentUser}; GroupDescription: {cm:AdditionalIcons}; Flags: exclusive
- Name: desktopicon\common; Description: {cm:tsk_AllUsers}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked exclusive
- Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
- Name: startup; Description: {cm:tsk_StartupDescr}; GroupDescription: {cm:tsk_Startup}; Check: not StartupCheck(); Flags: unchecked checkablealone
- Name: startup\minimized; Description: {cm:tsk_StartupDescrMin}; GroupDescription: {cm:tsk_Startup}; Check: not StartupCheck(); Flags: unchecked
- Name: remove_startup; Description: {cm:tsk_RemoveStartup}; GroupDescription: {cm:tsk_Startup}; Check: StartupCheck(); Flags: unchecked
- Name: set_default_taskmgr; Description: {cm:tsk_SetDefaultTaskmgr}; GroupDescription: {cm:tsk_Other}; Check: not PHDefaulTaskmgrCheck(); Flags: checkedonce unchecked
- Name: restore_taskmgr; Description: {cm:tsk_RestoreTaskmgr}; GroupDescription: {cm:tsk_Other}; Check: PHDefaulTaskmgrCheck(); Flags: checkedonce unchecked
- Name: reset_settings; Description: {cm:tsk_ResetSettings}; GroupDescription: {cm:tsk_Other}; Check: SettingsExistCheck(); Flags: checkedonce unchecked
- Name: create_KPH_service; Description: {cm:tsk_CreateKPHService}; GroupDescription: {cm:tsk_Other}; Check: not KPHServiceCheck(); Flags: unchecked
- Name: delete_KPH_service; Description: {cm:tsk_DeleteKPHService}; GroupDescription: {cm:tsk_Other}; Check: KPHServiceCheck(); Flags: unchecked
- Name: deldesktop_user; Description: {cm:tsk_DelCurUsrDesk}; GroupDescription: {cm:tsk_Other}; Flags: unchecked
- Name: deldesktop_common; Description: {cm:tsk_DelAllUsrDesk}; GroupDescription: {cm:tsk_Other}; Flags: unchecked
- Name: delquicklaunch; Description: {cm:tsk_DelQuickLaunch}; GroupDescription: {cm:tsk_Other}; Flags: unchecked
- [Files]
- Source: "..\..\CHANGELOG.txt"; DestDir: "{app}"; Flags: ignoreversion
- Source: "..\..\COPYRIGHT.txt"; DestDir: "{app}"; Flags: ignoreversion
- Source: "..\..\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion
- Source: "..\..\README.md"; DestDir: "{app}"; Flags: ignoreversion
- Source: "..\..\bin\Release32\ProcessHacker.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\ProcessHacker.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\ProcessHacker.exe"; DestDir: "{app}\x86"; Flags: ignoreversion; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release64\ProcessHacker.sig"; DestDir: "{app}"; Flags: ignoreversion onlyifdoesntexist; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\ProcessHacker.sig"; DestDir: "{app}"; Flags: ignoreversion onlyifdoesntexist; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release32\ProcessHacker.sig"; DestDir: "{app}\x86"; Flags: ignoreversion onlyifdoesntexist; Check: Is64BitInstallMode()
- Source: "..\..\KProcessHacker\bin-signed\i386\kprocesshacker.sys" ; DestDir: "{app}"; Flags: ignoreversion replacesameversion overwritereadonly restartreplace; Check: not Is64BitInstallMode()
- Source: "..\..\KProcessHacker\bin-signed\amd64\kprocesshacker.sys"; DestDir: "{app}"; Flags: ignoreversion replacesameversion overwritereadonly restartreplace; Check: Is64BitInstallMode()
- Source: "..\..\plugins-extra\TerminatorPlugin\resources\kprocesshacker2_x32.sys"; DestDir: "{app}\plugins\plugindata"; Flags: ignoreversion; Check: not Is64BitInstallMode()
- Source: "..\..\plugins-extra\TerminatorPlugin\resources\kprocesshacker2_x64.sys"; DestDir: "{app}\plugins\plugindata"; Flags: ignoreversion; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\peview.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: peview; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\peview.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: peview; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\AtomTablePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\atomtable; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\AtomTablePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\atomtable; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\AvgCpuPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\avgcpu; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\AvgCpuPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\avgcpu; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\DbgViewPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dbgview; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\DbgViewPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dbgview; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\DnsCachePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dnscache; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\DnsCachePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dnscache; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\DotNetTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dotnettools; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\DotNetTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\dotnettools; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\DotNetTools.dll"; DestDir: "{app}\x86\plugins"; Flags: ignoreversion; Components: plugins\dotnettools; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ExtendedNotifications.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendednotifications; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ExtendedNotifications.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendednotifications; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ExtendedServices.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendedservices; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ExtendedServices.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendedservices; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ExtendedTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendedtools; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ExtendedTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\extendedtools; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\FirewallMonitorPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fwmon; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\FirewallMonitorPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\fwmon; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ForceShutdownPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\forceshutdown; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ForceShutdownPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\forceshutdown; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\HardwareDevices.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\hardwaredevices; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\HardwareDevices.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\hardwaredevices; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\HexPidPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\hexpid; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\HexPidPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\hexpid; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\LiveDumpPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\livedump; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\LiveDumpPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\livedump; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\MemoryExtPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\memext; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\MemoryExtPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\memext; Check: Is64BitInstallMode()
- Source: "{src}\GeoLite2-Country.mmdb"; DestDir: "{userappdata}"; Flags: ignoreversion external skipifsourcedoesntexist overwritereadonly; Components: plugins\networktools
- Source: "..\..\bin\Release32\plugins\NetworkTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\networktools; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\NetworkTools.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\networktools; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\NvGpuPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nvgpu; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\NvGpuPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\nvgpu; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ObjectManagerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\objectmanager; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ObjectManagerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\objectmanager; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\OnlineChecks.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\onlinechecks; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\OnlineChecks.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\onlinechecks; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\PerfMonPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\perfmon; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\PerfMonPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\perfmon; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\PoolMonPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\poolmon; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\PoolMonPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\poolmon; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ProductPolicyPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\productpolicy; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ProductPolicyPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\productpolicy; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ROTViewerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\rotviewer; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ROTViewerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\rotviewer; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\SbieSupport.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\sbiesupport; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\SbieSupport.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\sbiesupport; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\SecurityExplorer.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\secexp; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\SecurityExplorer.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\secexp; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ServiceBackupRestorePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\srvbakrst; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ServiceBackupRestorePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\srvbakrst; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\SetCriticalPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\setcrtical; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\SetCriticalPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\setcrtical; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\TaskbarExtPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\taskbarext; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\TaskbarExtPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\taskbarext; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\TerminatorPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\taskbarext; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\TerminatorPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\taskbarext; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\ToolStatus.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\toolstatus; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\ToolStatus.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\toolstatus; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\TrustedInstallerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\trustinst; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\TrustedInstallerPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\trustinst; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\FirmwarePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\uefi; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\FirmwarePlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\uefi; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\Updater.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\updater; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\Updater.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\updater; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\UserNotes.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\usernotes; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\UserNotes.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\usernotes; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\WaitChainPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\waitchain; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\WaitChainPlugin.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\waitchain; Check: Is64BitInstallMode()
- Source: "..\..\bin\Release32\plugins\WindowExplorer.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\windowexplorer; Check: not Is64BitInstallMode()
- Source: "..\..\bin\Release64\plugins\WindowExplorer.dll"; DestDir: "{app}\plugins"; Flags: ignoreversion; Components: plugins\windowexplorer; Check: Is64BitInstallMode()
- Source: "{userappdata}\Process Hacker 2\settings.xml"; DestDir: "{userappdata}\Process Hacker"; Flags: external ignoreversion overwritereadonly uninsremovereadonly skipifsourcedoesntexist; Check: IsUpgrade; AfterInstall: CorrectSetting
- Source: "{userappdata}\Process Hacker 2\usernotesdb.xml"; DestDir: "{userappdata}\Process Hacker"; Flags: external ignoreversion overwritereadonly uninsremovereadonly skipifsourcedoesntexist
- Source: "Icons_Full\uninstall.ico"; DestDir: "{app}"; Flags: ignoreversion
- [Icons]
- Name: {group}\PE Viewer; Filename: {app}\peview.exe; WorkingDir: {app}; Comment: PE Viewer; IconFilename: {app}\peview.exe; IconIndex: 0; Components: peview; Flags: excludefromshowinnewinstall
- Name: {group}\Process Hacker; Filename: {app}\ProcessHacker.exe; WorkingDir: {app}; Comment: Process Hacker {#app_version}; IconFilename: {app}\ProcessHacker.exe; IconIndex: 0
- Name: {group}\{cm:sm_Help}\{cm:sm_Changelog}; Filename: {app}\CHANGELOG.txt; WorkingDir: {app}; Comment: {cm:sm_com_Changelog}
- Name: {group}\{cm:sm_Help}\{cm:ProgramOnTheWeb,Process Hacker}; Filename: http://processhacker.sourceforge.net/; Comment: {cm:ProgramOnTheWeb,Process Hacker}
- Name: {group}\{cm:UninstallProgram,Process Hacker}; Filename: {uninstallexe}; WorkingDir: {app}; Comment: {cm:UninstallProgram,Process Hacker}; IconFilename: {app}\uninstall.ico
- Name: {commondesktop}\Process Hacker; Filename: {app}\ProcessHacker.exe; WorkingDir: {app}; Comment: Process Hacker {#app_version}; IconFilename: {app}\ProcessHacker.exe; IconIndex: 0; Tasks: desktopicon\common
- Name: {userdesktop}\Process Hacker; Filename: {app}\ProcessHacker.exe; WorkingDir: {app}; Comment: Process Hacker {#app_version}; IconFilename: {app}\ProcessHacker.exe; IconIndex: 0; Tasks: desktopicon\user
- Name: {#quick_launch}\Process Hacker; Filename: {app}\ProcessHacker.exe; WorkingDir: {app}; Comment: Process Hacker {#app_version}; IconFilename: {app}\ProcessHacker.exe; IconIndex: 0; Tasks: quicklaunchicon
- [InstallDelete]
- Type: files; Name: "{userdesktop}\Process Hacker.lnk"; Check: IsTaskSelected('desktopicon\user') and IsUpgrade()
- Type: files; Name: "{commondesktop}\Process Hacker.lnk"; Check: IsTaskSelected('desktopicon\common') and IsUpgrade()
- Type: files; Name: "{#quick_launch}\Process Hacker.lnk"; Check: IsTaskSelected('quicklaunchicon') and IsUpgrade(); OnlyBelowVersion: 6.02
- Type: files; Name: "{userdesktop}\Process Hacker.lnk"; Check: IsTaskSelected('deldesktop_user') and IsUpgrade()
- Type: files; Name: "{commondesktop}\Process Hacker.lnk"; Check: IsTaskSelected('deldesktop_common') and IsUpgrade()
- Type: files; Name: "{#quick_launch}\Process Hacker.lnk"; Check: IsTaskSelected('delquicklaunch') and IsUpgrade(); OnlyBelowVersion: 6.02
- Type: files; Name: "{group}\Help and Support\Process Hacker Help.lnk"; Check: IsUpgrade()
- Type: files; Name: "{userappdata}\Process Hacker\settings.xml"; Tasks: reset_settings
- Type: dirifempty; Name: "{userappdata}\Process Hacker"; Tasks: reset_settings
- Type: files; Name: "{app}\Help.htm"; Check: IsUpgrade()
- Type: files; Name: "{app}\peview.exe"; Check: not IsComponentSelected('peview') and IsUpgrade()
- Type: files; Name: "{group}\PE Viewer.lnk"; Check: not IsComponentSelected('peview') and IsUpgrade()
- Type: filesandordirs; Name: "{app}\plugins\maxminddb"
- Type: filesandordirs; Name: "{app}\plugins\kph2"
- Type: files; Name: "{app}\plugins\AtomTablePlugin.dll"; Check: not IsComponentSelected('plugins\atomtable') and IsUpgrade()
- Type: files; Name: "{app}\plugins\AvgCpuPlugin.dll"; Check: not IsComponentSelected('plugins\avgcpu') and IsUpgrade()
- Type: files; Name: "{app}\plugins\BootEntriesPlugin.dll";
- Type: files; Name: "{app}\plugins\CommonUtil.dll";
- Type: files; Name: "{app}\plugins\DbgViewPlugin.dll"; Check: not IsComponentSelected('plugins\dbgview') and IsUpgrade()
- Type: files; Name: "{app}\plugins\DiskDrivesPlugin.dll"
- Type: files; Name: "{app}\plugins\DnsCachePlugin.dll"; Check: not IsComponentSelected('plugins\dnscache') and IsUpgrade()
- Type: files; Name: "{app}\plugins\DotNetTools.dll"; Check: not IsComponentSelected('plugins\dotnettools') and IsUpgrade()
- Type: files; Name: "{app}\plugins\EnvironmentEditPlugin.dll"
- Type: files; Name: "{app}\plugins\ExtendedNotifications.dll"; Check: not IsComponentSelected('plugins\extendednotifications') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ExtendedServices.dll"; Check: not IsComponentSelected('plugins\extendedservices') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ExtendedTools.dll"; Check: not IsComponentSelected('plugins\extendedtools') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ExtraPlugins.dll"
- Type: files; Name: "{app}\plugins\FirewallMonitor.dll"; Check: not IsComponentSelected('plugins\fwmon') and IsUpgrade()
- Type: files; Name: "{app}\plugins\FirmwarePlugin.dll"; Check: not IsComponentSelected('plugins\uefi') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ForceShutdownPlugin.dll"; Check: not IsComponentSelected('plugins\forceshutdown') and IsUpgrade()
- Type: files; Name: "{app}\plugins\GraphicsInfo.dll"; Check: not IsComponentSelected('plugins\gfxinfo') and IsUpgrade()
- Type: files; Name: "{app}\plugins\HardwareDevices.dll"; Check: not IsComponentSelected('plugins\hardwaredevices') and IsUpgrade()
- Type: files; Name: "{app}\plugins\HexPidPlugin.dll"; Check: not IsComponentSelected('plugins\hexpid') and IsUpgrade()
- Type: files; Name: "{app}\plugins\HighlightPlugin.dll"
- Type: files; Name: "{app}\plugins\LiveDumpPlugin.dll"; Check: not IsComponentSelected('plugins\livedump') and IsUpgrade()
- Type: files; Name: "{app}\plugins\MemoryExtPlugin.dll"; Check: not IsComponentSelected('plugins\memext') and IsUpgrade()
- Type: files; Name: "{app}\plugins\NetAdapters.dll"
- Type: files; Name: "{app}\plugins\NetAdaptersPlugin.dll"
- Type: files; Name: "{app}\plugins\NetExtrasPlugin.dll"
- Type: files; Name: "{app}\plugins\NetworkTools.dll"; Check: not IsComponentSelected('plugins\networktools') and IsUpgrade()
- Type: files; Name: "{app}\plugins\NvGpuPlugin.dll"; Check: not IsComponentSelected('plugins\nvgpu') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ObjectManagerPlugin.dll"; Check: not IsComponentSelected('plugins\objectmanager') and IsUpgrade()
- Type: files; Name: "{app}\plugins\OnlineChecks.dll"; Check: not IsComponentSelected('plugins\onlinechecks') and IsUpgrade()
- Type: files; Name: "{app}\plugins\PerfMonPlugin.dll"; Check: not IsComponentSelected('plugins\perfmon') and IsUpgrade()
- Type: files; Name: "{app}\plugins\plugindata\GeoLite2-City.mmdb"
- Type: files; Name: "{app}\plugins\PoolMonPlugin.dll"; Check: not IsComponentSelected('plugins\poolmon') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ProcessActions.dll"; Check: not IsComponentSelected('plugins\processactions') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ProductPolicyPlugin.dll"; Check: not IsComponentSelected('plugins\productpolicy') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ROTViewerPlugin.dll"; Check: not IsComponentSelected('plugins\rotviewer') and IsUpgrade()
- Type: files; Name: "{app}\plugins\SbieSupport.dll"; Check: not IsComponentSelected('plugins\sbiesupport') and IsUpgrade()
- Type: files; Name: "{app}\plugins\SecurityExplorer.dll"; Check: not IsComponentSelected('plugins\secexp') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ServiceBackupRestorePlugin.dll"; Check: not IsComponentSelected('plugins\srvbakrst') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ServiceExtrasPlugin.dll"
- Type: files; Name: "{app}\plugins\SetCriticalPlugin.dll"; Check: not IsComponentSelected('plugins\setcrtical') and IsUpgrade()
- Type: files; Name: "{app}\plugins\TaskbarExtPlugin.dll"; Check: not IsComponentSelected('plugins\taskbarext') and IsUpgrade()
- Type: files; Name: "{app}\plugins\TerminatorPlugin.dll"; Check: not IsComponentSelected('plugins\terminator') and IsUpgrade()
- Type: files; Name: "{app}\plugins\ToolStatus.dll"; Check: not IsComponentSelected('plugins\toolstatus') and IsUpgrade()
- Type: files; Name: "{app}\plugins\TrustedInstallerPlugin.dll"; Check: not IsComponentSelected('plugins\trustinst') and IsUpgrade()
- Type: files; Name: "{app}\plugins\UMDFHostPlugin.dll"
- Type: files; Name: "{app}\plugins\Updater.dll"; Check: not IsComponentSelected('plugins\updater') and IsUpgrade()
- Type: files; Name: "{app}\plugins\UserNotes.dll"; Check: not IsComponentSelected('plugins\usernotes') and IsUpgrade()
- Type: files; Name: "{app}\plugins\WaitChainPlugin.dll"; Check: not IsComponentSelected('plugins\waitchain') and IsUpgrade()
- Type: files; Name: "{app}\plugins\WindowExplorer.dll"; Check: not IsComponentSelected('plugins\windowexplorer') and IsUpgrade()
- Type: dirifempty; Name: "{app}\plugins"
- [Run]
- Filename: {app}\ProcessHacker.exe; Description: {cm:LaunchProgram,Process Hacker}; Flags: nowait postinstall skipifsilent
- Filename: {app}\CHANGELOG.txt; Description: {cm:run_ViewChangelog}; Flags: nowait postinstall skipifsilent unchecked shellexec
- Filename: {#website_url}; Description: {cm:run_VisitWebsite}; Flags: nowait postinstall skipifsilent unchecked shellexec
- [Registry]
- Root: "HKCU"; Subkey: "Software\ProcessHacker"; Flags: dontcreatekey noerror deletekey uninsdeletekey
- [Code]
- const
- installer_mutex = 'process_hacker_setup_mutex';
- IFEO = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe';
- HKCURUN = 'Software\Microsoft\Windows\CurrentVersion\Run';
- function IsUpdKPH(): Boolean;
- var
- x86: String;
- x64: String;
- begin
- x86 := '5452339315254a3b7f236a10c3d1ce09d04131e3';
- x64 := '624a63232e0acc4992ce01f3e836711e4f6da2f1';
- if Is64BitInstallMode() then
- Result := (GetSHA1OfFile(ExpandConstant('{app}\kprocesshacker.sys')) <> x64)
- else
- Result := (GetSHA1OfFile(ExpandConstant('{app}\kprocesshacker.sys')) <> x86);
- end;
- function IsUpgrade(): Boolean;
- var
- sPrevPath: String;
- begin
- sPrevPath := WizardForm.PrevAppDir;
- Result := (sPrevPath <> '');
- end;
- function NeedRestart(): Boolean;
- begin
- Result := False;
- if IsServiceStopPending('KProcessHacker3') then
- Result := True;
- end;
- function ShouldSkipPage(PageID: Integer): Boolean;
- begin
- // Hide the License and the Ready to install page if it's an upgrade
- if IsUpgrade() and (PageID = wpLicense) or (PageID = wpReady) then
- Result := True;
- end;
- // Check if KProcessHacker is installed as a service
- function KPHServiceCheck(): Boolean;
- var
- dwStart: DWORD;
- begin
- if RegQueryDWordValue(HKLM, 'SYSTEM\CurrentControlSet\Services\KProcessHacker3', 'Start', dwStart) then begin
- if dwStart = 1 then
- Result := True;
- end else
- Result := False;
- end;
- // Check if Process Hacker is set as the default Task Manager for Windows
- function PHDefaulTaskmgrCheck(): Boolean;
- var
- sDebugger: String;
- begin
- if RegQueryStringValue(HKLM, IFEO, 'Debugger', sDebugger) then begin
- if sDebugger = (ExpandConstant('"{app}\ProcessHacker.exe"')) then
- Result := True;
- end else
- Result := False;
- end;
- // Check if Process Hacker's settings exist
- function SettingsExistCheck(): Boolean;
- begin
- if FileExists(ExpandConstant('{userappdata}\Process Hacker\settings.xml')) then
- Result := True
- else
- Result := False;
- end;
- // Check if Process Hacker is configured to run on startup in order to control
- // startup choice from within the installer
- function StartupCheck(): Boolean;
- var
- svalue: String;
- begin
- if RegQueryStringValue(HKCU, HKCURUN, 'Process Hacker', svalue) then begin
- if (svalue = (ExpandConstant('"{app}\ProcessHacker.exe"'))) or (svalue = (ExpandConstant('"{app}\ProcessHacker.exe" -hide'))) then
- Result := True;
- end else
- Result := False;
- end;
- // Correct usernotesdb.xml patch
- procedure CorrectSetting();
- var
- FndStr: String;
- begin
- if IsUpgrade() and FileExists(ExpandConstant('{userappdata}\Process Hacker 2\usernotesdb.xml')) then
- begin
- FndStr := '<setting name="ProcessHacker.UserNotes.DatabasePath">%APPDATA%\Process Hacker 2\usernotesdb.xml</setting>';
- StringChangeEx(FndStr, 'Process Hacker 2', 'Process Hacker', True);
- end
- end;
- procedure CurPageChanged(CurPageID: Integer);
- begin
- if IsUpgrade() and (CurPageID = wpSelectTasks) then
- WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall);
- end;
- procedure CurStepChanged(CurStep: TSetupStep);
- var
- iResultCode: Integer;
- begin
- if CurStep = ssInstall then begin
- if IsUpdKPH() and IsServiceRunning('KProcessHacker3') then
- begin
- StopService('KProcessHacker3');
- Sleep(1500);
- NeedRestart();
- end;
- if IsTaskSelected('delete_KPH_service') then
- begin
- StopService('KProcessHacker2');
- StopService('KProcessHacker3');
- RemoveService('KProcessHacker2');
- RemoveService('KProcessHacker3');
- end;
- end;
- if CurStep = ssPostInstall then begin
- if IsTaskSelected('create_KPH_service') then begin
- if not Exec(ExpandConstant('{app}\ProcessHacker.exe'), '-installkph -s', '', SW_HIDE, ewWaitUntilTerminated, iResultCode) then begin
- // handle failure if necessary; iResultCode contains the error code
- end;
- end;
- if IsTaskSelected('set_default_taskmgr') then
- RegWriteStringValue(HKLM, IFEO, 'Debugger', ExpandConstant('"{app}\ProcessHacker.exe"'));
- if IsTaskSelected('restore_taskmgr') then begin
- RegDeleteValue(HKLM, IFEO, 'Debugger');
- RegDeleteKeyIfEmpty(HKLM, IFEO);
- end;
- if IsTaskSelected('startup') then
- RegWriteStringValue(HKCU, HKCURUN, 'Process Hacker', ExpandConstant('"{app}\ProcessHacker.exe"'));
- if IsTaskSelected('startup\minimized') then
- RegWriteStringValue(HKCU, HKCURUN, 'Process Hacker', ExpandConstant('"{app}\ProcessHacker.exe" -hide'));
- if IsTaskSelected('remove_startup') then
- RegDeleteValue(HKCU, HKCURUN, 'Process Hacker');
- end;
- end;
- procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
- begin
- if CurUninstallStep = usUninstall then begin
- StopService('KProcessHacker3');
- RemoveService('KProcessHacker3');
- // When uninstalling ask user to delete Process Hacker's settings
- // based on whether the settings file exists only
- if SettingsExistCheck() then begin
- if SuppressibleMsgBox(CustomMessage('msg_DeleteLogSettings'), mbConfirmation, MB_YESNO or MB_DEFBUTTON2, IDNO) = IDYES then
- DeleteFile(ExpandConstant('{userappdata}\Process Hacker\settings.xml'));
- end;
- if PHDefaulTaskmgrCheck() then
- RegDeleteValue(HKLM, IFEO, 'Debugger');
- RegDeleteKeyIfEmpty(HKLM, IFEO);
- if StartupCheck() then
- RegDeleteValue(HKCU, HKCURUN, 'Process Hacker');
- RemoveDir(ExpandConstant('{userappdata}\Process Hacker'));
- RemoveDir(ExpandConstant('{app}\plugins'));
- RemoveDir(ExpandConstant('{app}'));
- end;
- end;
- procedure InitializeWizard();
- begin
- WizardForm.SelectTasksLabel.Hide;
- WizardForm.TasksList.Top := 0;
- WizardForm.TasksList.Height := PageFromID(wpSelectTasks).SurfaceHeight;
- end;
- function InitializeSetup(): Boolean;
- begin
- // Create a mutex for the installer and if it's already running then expose a message and stop installation
- if CheckForMutexes(installer_mutex) and not WizardSilent() then begin
- SuppressibleMsgBox(CustomMessage('msg_SetupIsRunningWarning'), mbError, MB_OK, MB_OK);
- Result := False;
- end
- else begin
- Result := True;
- CreateMutex(installer_mutex);
- end;
- end;
- function InitializeUninstall(): Boolean;
- begin
- if CheckForMutexes(installer_mutex) then begin
- SuppressibleMsgBox(CustomMessage('msg_SetupIsRunningWarning'), mbError, MB_OK, MB_OK);
- Result := False;
- end
- else begin
- Result := True;
- CreateMutex(installer_mutex);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement