diff options
Diffstat (limited to 'browser/installer/windows/nsis/uninstaller.nsi')
-rwxr-xr-x | browser/installer/windows/nsis/uninstaller.nsi | 627 |
1 files changed, 0 insertions, 627 deletions
diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi deleted file mode 100755 index 87f4d838a..000000000 --- a/browser/installer/windows/nsis/uninstaller.nsi +++ /dev/null @@ -1,627 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -# Required Plugins: -# AppAssocReg http://nsis.sourceforge.net/Application_Association_Registration_plug-in -# CityHash http://dxr.mozilla.org/mozilla-central/source/other-licenses/nsis/Contrib/CityHash -# ShellLink http://nsis.sourceforge.net/ShellLink_plug-in -# UAC http://nsis.sourceforge.net/UAC_plug-in - -; Set verbosity to 3 (e.g. no script) to lessen the noise in the build logs -!verbose 3 - -; 7-Zip provides better compression than the lzma from NSIS so we add the files -; uncompressed and use 7-Zip to create a SFX archive of it -SetDatablockOptimize on -SetCompress off -CRCCheck on - -RequestExecutionLevel user - -; The commands inside this ifdef require NSIS 3.0a2 or greater so the ifdef can -; be removed after we require NSIS 3.0a2 or greater. -!ifdef NSIS_PACKEDVERSION - Unicode true - ManifestSupportedOS all - ManifestDPIAware true -!endif - -!addplugindir ./ - -; On Vista and above attempt to elevate Standard Users in addition to users that -; are a member of the Administrators group. -!define NONADMIN_ELEVATE - -; prevents compiling of the reg write logging. -!define NO_LOG - -!define MaintUninstallKey \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\MozillaMaintenanceService" - -Var TmpVal -Var MaintCertKey - -; Other included files may depend upon these includes! -; The following includes are provided by NSIS. -!include FileFunc.nsh -!include LogicLib.nsh -!include MUI.nsh -!include WinMessages.nsh -!include WinVer.nsh -!include WordFunc.nsh - -!insertmacro GetSize -!insertmacro StrFilter -!insertmacro WordReplace - -!insertmacro un.GetParent - -; The following includes are custom. -!include branding.nsi -!include defines.nsi -!include common.nsh -!include locales.nsi - -; This is named BrandShortName helper because we use this for software update -; post update cleanup. -VIAddVersionKey "FileDescription" "${BrandShortName} Helper" -VIAddVersionKey "OriginalFilename" "helper.exe" - -!insertmacro AddDisabledDDEHandlerValues -!insertmacro CleanVirtualStore -!insertmacro ElevateUAC -!insertmacro GetLongPath -!insertmacro GetPathFromString -!insertmacro InitHashAppModelId -!insertmacro IsHandlerForInstallDir -!insertmacro IsPinnedToTaskBar -!insertmacro IsUserAdmin -!insertmacro LogDesktopShortcut -!insertmacro LogQuickLaunchShortcut -!insertmacro LogStartMenuShortcut -!insertmacro PinnedToStartMenuLnkCount -!insertmacro RegCleanAppHandler -!insertmacro RegCleanMain -!insertmacro RegCleanUninstall -!insertmacro SetAppLSPCategories -!insertmacro SetBrandNameVars -!insertmacro UpdateShortcutAppModelIDs -!insertmacro UnloadUAC -!insertmacro WriteRegDWORD2 -!insertmacro WriteRegStr2 - -!insertmacro un.ChangeMUIHeaderImage -!insertmacro un.CheckForFilesInUse -!insertmacro un.CleanUpdateDirectories -!insertmacro un.CleanVirtualStore -!insertmacro un.DeleteShortcuts -!insertmacro un.GetLongPath -!insertmacro un.GetSecondInstallPath -!insertmacro un.InitHashAppModelId -!insertmacro un.ManualCloseAppPrompt -!insertmacro un.RegCleanAppHandler -!insertmacro un.RegCleanFileHandler -!insertmacro un.RegCleanMain -!insertmacro un.RegCleanUninstall -!insertmacro un.RegCleanProtocolHandler -!insertmacro un.RemoveQuotesFromPath -!insertmacro un.RemovePrecompleteEntries -!insertmacro un.SetAppLSPCategories -!insertmacro un.SetBrandNameVars - -!include shared.nsh - -; Helper macros for ui callbacks. Insert these after shared.nsh -!insertmacro OnEndCommon -!insertmacro UninstallOnInitCommon - -!insertmacro un.OnEndCommon -!insertmacro un.UninstallUnOnInitCommon - -Name "${BrandFullName}" -OutFile "helper.exe" -!ifdef HAVE_64BIT_BUILD - InstallDir "$PROGRAMFILES64\${BrandFullName}\" -!else - InstallDir "$PROGRAMFILES32\${BrandFullName}\" -!endif -ShowUnInstDetails nevershow - -################################################################################ -# Modern User Interface - MUI - -!define MUI_ABORTWARNING -!define MUI_ICON setup.ico -!define MUI_UNICON setup.ico -!define MUI_WELCOMEPAGE_TITLE_3LINES -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_RIGHT -!define MUI_UNWELCOMEFINISHPAGE_BITMAP wizWatermark.bmp - -; Use a right to left header image when the language is right to left -!ifdef ${AB_CD}_rtl -!define MUI_HEADERIMAGE_BITMAP_RTL wizHeaderRTL.bmp -!else -!define MUI_HEADERIMAGE_BITMAP wizHeader.bmp -!endif - -/** - * Uninstall Pages - */ -; Welcome Page -!define MUI_PAGE_CUSTOMFUNCTION_PRE un.preWelcome -!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.leaveWelcome -!insertmacro MUI_UNPAGE_WELCOME - -; Custom Uninstall Confirm Page -UninstPage custom un.preConfirm - -; Remove Files Page -!insertmacro MUI_UNPAGE_INSTFILES - -; Finish Page - -!insertmacro MUI_UNPAGE_FINISH - -; Use the default dialog for IDD_VERIFY for a simple Banner -ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe" - -################################################################################ -# Helper Functions - -; This function is used to uninstall the maintenance service if the -; application currently being uninstalled is the last application to use the -; maintenance service. -Function un.UninstallServiceIfNotUsed - ; $0 will store if a subkey exists - ; $1 will store the first subkey if it exists or an empty string if it doesn't - ; Backup the old values - Push $0 - Push $1 - - ; The maintenance service always uses the 64-bit registry on x64 systems - ${If} ${RunningX64} - SetRegView 64 - ${EndIf} - - ; Figure out the number of subkeys - StrCpy $0 0 - ${Do} - EnumRegKey $1 HKLM "Software\Mozilla\MaintenanceService" $0 - ${If} "$1" == "" - ${ExitDo} - ${EndIf} - IntOp $0 $0 + 1 - ${Loop} - - ; Restore back the registry view - ${If} ${RunningX64} - SetRegView lastUsed - ${EndIf} - ${If} $0 == 0 - ; Get the path of the maintenance service uninstaller - ReadRegStr $1 HKLM ${MaintUninstallKey} "UninstallString" - - ; If the uninstall string does not exist, skip executing it - StrCmp $1 "" doneUninstall - - ; $1 is already a quoted string pointing to the install path - ; so we're already protected against paths with spaces - nsExec::Exec "$1 /S" -doneUninstall: - ${EndIf} - - ; Restore the old value of $1 and $0 - Pop $1 - Pop $0 -FunctionEnd - -################################################################################ -# Install Sections -; Empty section required for the installer to compile as an uninstaller -Section "" -SectionEnd - -################################################################################ -# Uninstall Sections - -Section "Uninstall" - SetDetailsPrint textonly - DetailPrint $(STATUS_UNINSTALL_MAIN) - SetDetailsPrint none - - ; Delete the app exe to prevent launching the app while we are uninstalling. - ClearErrors - ${DeleteFile} "$INSTDIR\${FileMainEXE}" - ${If} ${Errors} - ; If the user closed the application it can take several seconds for it to - ; shut down completely. If the application is being used by another user we - ; can still delete the files when the system is restarted. - Sleep 5000 - ${DeleteFile} "$INSTDIR\${FileMainEXE}" - ClearErrors - ${EndIf} - - ; setup the application model id registration value - ${un.InitHashAppModelId} "$INSTDIR" "Software\Mozilla\${AppName}\TaskBarIDs" - - SetShellVarContext current ; Set SHCTX to HKCU - ${un.RegCleanMain} "Software\Mozilla" - ${un.RegCleanUninstall} - ${un.DeleteShortcuts} - - ; Unregister resources associated with Win7 taskbar jump lists. - ${If} ${AtLeastWin7} - ${AndIf} "$AppUserModelID" != "" - ApplicationID::UninstallJumpLists "$AppUserModelID" - ${EndIf} - - ; Remove the updates directory for Vista and above - ${un.CleanUpdateDirectories} "Mozilla\Basilisk" "Mozilla\updates" - - ; Remove any app model id's stored in the registry for this install path - DeleteRegValue HKCU "Software\Mozilla\${AppName}\TaskBarIDs" "$INSTDIR" - DeleteRegValue HKLM "Software\Mozilla\${AppName}\TaskBarIDs" "$INSTDIR" - - ClearErrors - WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test" - ${If} ${Errors} - StrCpy $TmpVal "HKCU" ; used primarily for logging - ${Else} - SetShellVarContext all ; Set SHCTX to HKLM - DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" - StrCpy $TmpVal "HKLM" ; used primarily for logging - ${un.RegCleanMain} "Software\Mozilla" - ${un.RegCleanUninstall} - ${un.DeleteShortcuts} - ${un.SetAppLSPCategories} - ${EndIf} - - ${un.RegCleanAppHandler} "BasiliskURL" - ${un.RegCleanAppHandler} "BasiliskHTML" - ${un.RegCleanProtocolHandler} "ftp" - ${un.RegCleanProtocolHandler} "http" - ${un.RegCleanProtocolHandler} "https" - - ClearErrors - ReadRegStr $R9 HKCR "BasiliskHTML" "" - ; Don't clean up the file handlers if the BasiliskHTML key still exists since - ; there should be a second installation that may be the default file handler - ${If} ${Errors} - ${un.RegCleanFileHandler} ".htm" "BasiliskHTML" - ${un.RegCleanFileHandler} ".html" "BasiliskHTML" - ${un.RegCleanFileHandler} ".shtml" "BasiliskHTML" - ${un.RegCleanFileHandler} ".xht" "BasiliskHTML" - ${un.RegCleanFileHandler} ".xhtml" "BasiliskHTML" - ${un.RegCleanFileHandler} ".oga" "BasiliskHTML" - ${un.RegCleanFileHandler} ".ogg" "BasiliskHTML" - ${un.RegCleanFileHandler} ".ogv" "BasiliskHTML" - ${un.RegCleanFileHandler} ".pdf" "BasiliskHTML" - ${un.RegCleanFileHandler} ".webm" "BasiliskHTML" - ${EndIf} - - SetShellVarContext all ; Set SHCTX to HKLM - ${un.GetSecondInstallPath} "Software\Mozilla" $R9 - ${If} $R9 == "false" - SetShellVarContext current ; Set SHCTX to HKCU - ${un.GetSecondInstallPath} "Software\Mozilla" $R9 - ${EndIf} - - StrCpy $0 "Software\Clients\StartMenuInternet\${FileMainEXE}\shell\open\command" - ReadRegStr $R1 HKLM "$0" "" - ${un.RemoveQuotesFromPath} "$R1" $R1 - ${un.GetParent} "$R1" $R1 - - ; Only remove the StartMenuInternet key if it refers to this install location. - ; The StartMenuInternet registry key is independent of the default browser - ; settings. The XPInstall base un-installer always removes this key if it is - ; uninstalling the default browser and it will always replace the keys when - ; installing even if there is another install of Basilisk that is set as the - ; default browser. Now the key is always updated on install but it is only - ; removed if it refers to this install location. - ${If} "$INSTDIR" == "$R1" - DeleteRegKey HKLM "Software\Clients\StartMenuInternet\${FileMainEXE}" - DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegName}" - ${EndIf} - - ReadRegStr $R1 HKCU "$0" "" - ${un.RemoveQuotesFromPath} "$R1" $R1 - ${un.GetParent} "$R1" $R1 - - ; Only remove the StartMenuInternet key if it refers to this install location. - ; The StartMenuInternet registry key is independent of the default browser - ; settings. The XPInstall base un-installer always removes this key if it is - ; uninstalling the default browser and it will always replace the keys when - ; installing even if there is another install of Basilisk that is set as the - ; default browser. Now the key is always updated on install but it is only - ; removed if it refers to this install location. - ${If} "$INSTDIR" == "$R1" - DeleteRegKey HKCU "Software\Clients\StartMenuInternet\${FileMainEXE}" - DeleteRegValue HKCU "Software\RegisteredApplications" "${AppRegName}" - ${EndIf} - - StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}" - ${If} $R9 == "false" - DeleteRegKey HKLM "$0" - DeleteRegKey HKCU "$0" - StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\${FileMainEXE}" - DeleteRegKey HKLM "$0" - DeleteRegKey HKCU "$0" - StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\plugin-container.exe" - DeleteRegKey HKLM "$0" - DeleteRegKey HKCU "$0" - StrCpy $0 "Software\Classes\MIME\Database\Content Type\application/x-xpinstall;app=Basilisk" - DeleteRegKey HKLM "$0" - DeleteRegKey HKCU "$0" - ${Else} - ReadRegStr $R1 HKLM "$0" "" - ${un.RemoveQuotesFromPath} "$R1" $R1 - ${un.GetParent} "$R1" $R1 - ${If} "$INSTDIR" == "$R1" - WriteRegStr HKLM "$0" "" "$R9" - ${un.GetParent} "$R9" $R1 - WriteRegStr HKLM "$0" "Path" "$R1" - ${EndIf} - ${EndIf} - - ; Remove directories and files we always control before parsing the uninstall - ; log so empty directories can be removed. - ${If} ${FileExists} "$INSTDIR\updates" - RmDir /r /REBOOTOK "$INSTDIR\updates" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\updated" - RmDir /r /REBOOTOK "$INSTDIR\updated" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\defaults\shortcuts" - RmDir /r /REBOOTOK "$INSTDIR\defaults\shortcuts" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\distribution" - RmDir /r /REBOOTOK "$INSTDIR\distribution" - ${EndIf} - - ; Remove files that may be left behind by the application in the - ; VirtualStore directory. - ${un.CleanVirtualStore} - - ; Only unregister the dll if the registration points to this installation - ReadRegStr $R1 HKCR "CLSID\{0D68D6D0-D93D-4D08-A30D-F00DD1F45B24}\InProcServer32" "" - ${If} "$INSTDIR\AccessibleMarshal.dll" == "$R1" - ${UnregisterDLL} "$INSTDIR\AccessibleMarshal.dll" - ${EndIf} - - ${un.RemovePrecompleteEntries} "false" - - ${If} ${FileExists} "$INSTDIR\defaults\pref\channel-prefs.js" - Delete /REBOOTOK "$INSTDIR\defaults\pref\channel-prefs.js" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\defaults\pref" - RmDir /REBOOTOK "$INSTDIR\defaults\pref" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\defaults" - RmDir /REBOOTOK "$INSTDIR\defaults" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\uninstall" - ; Remove the uninstall directory that we control - RmDir /r /REBOOTOK "$INSTDIR\uninstall" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\install.log" - Delete /REBOOTOK "$INSTDIR\install.log" - ${EndIf} - ${If} ${FileExists} "$INSTDIR\update-settings.ini" - Delete /REBOOTOK "$INSTDIR\update-settings.ini" - ${EndIf} - - ; Explicitly remove empty webapprt dir in case it exists (bug 757978). - RmDir "$INSTDIR\webapprt\components" - RmDir "$INSTDIR\webapprt" - - ; Remove the installation directory if it is empty - RmDir "$INSTDIR" - - ; If Basilisk.exe was successfully deleted yet we still need to restart to - ; remove other files create a dummy Basilisk.exe.moz-delete to prevent the - ; installer from allowing an install without restart when it is required - ; to complete an uninstall. - ${If} ${RebootFlag} - ; Admin is required to delete files on reboot so only add the moz-delete if - ; the user is an admin. After calling UAC::IsAdmin $0 will equal 1 if the - ; user is an admin. - UAC::IsAdmin - ${If} "$0" == "1" - ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}.moz-delete" - FileOpen $0 "$INSTDIR\${FileMainEXE}.moz-delete" w - FileWrite $0 "Will be deleted on restart" - Delete /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-delete" - FileClose $0 - ${EndUnless} - ${EndIf} - ${EndIf} - - ; Refresh desktop icons otherwise the start menu internet item won't be - ; removed and other ugly things will happen like recreation of the app's - ; clients registry key by the OS under some conditions. - System::Call "shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i 0, i 0, i 0)" - - ; Users who uninstall then reinstall expecting Basilisk to use a clean profile - ; may be surprised during first-run. This key is checked during startup of Basilisk and - ; subsequently deleted after checking. If the value is found during startup - ; the browser will offer to Reset Basilisk. We use the UpdateChannel to match - ; uninstalls of Basilisk-release with reinstalls of Basilisk-release, for example. - WriteRegStr HKCU "Software\Mozilla\Basilisk" "Uninstalled-${UpdateChannel}" "True" - -!ifdef MOZ_MAINTENANCE_SERVICE - ; Get the path the allowed cert is at and remove it - ; Keep this block of code last since it modfies the reg view - ServicesHelper::PathToUniqueRegistryPath "$INSTDIR" - Pop $MaintCertKey - ${If} $MaintCertKey != "" - ; Always use the 64bit registry for certs on 64bit systems. - ${If} ${RunningX64} - SetRegView 64 - ${EndIf} - DeleteRegKey HKLM "$MaintCertKey" - ${If} ${RunningX64} - SetRegView lastused - ${EndIf} - ${EndIf} - Call un.UninstallServiceIfNotUsed -!endif - - ${un.IsFirewallSvcRunning} - Pop $0 - ${If} "$0" == "true" - liteFirewallW::RemoveRule "$INSTDIR\${FileMainEXE}" "${BrandShortName} ($INSTDIR)" - ${EndIf} -SectionEnd - -################################################################################ -# Language - -!insertmacro MOZ_MUI_LANGUAGE 'baseLocale' -!verbose push -!verbose 3 -!include "overrideLocale.nsh" -!include "customLocale.nsh" -!verbose pop - -; Set this after the locale files to override it if it is in the locale. Using -; " " for BrandingText will hide the "Nullsoft Install System..." branding. -BrandingText " " - -################################################################################ -# Page pre, show, and leave functions - -Function un.preWelcome - ${If} ${FileExists} "$INSTDIR\distribution\modern-wizard.bmp" - Delete "$PLUGINSDIR\modern-wizard.bmp" - CopyFiles /SILENT "$INSTDIR\distribution\modern-wizard.bmp" "$PLUGINSDIR\modern-wizard.bmp" - ${EndIf} -FunctionEnd - -Function un.leaveWelcome - ${If} ${FileExists} "$INSTDIR\${FileMainEXE}" - Banner::show /NOUNLOAD "$(BANNER_CHECK_EXISTING)" - - ; If the message window has been found previously give the app an additional - ; five seconds to close. - ${If} "$TmpVal" == "FoundMessageWindow" - Sleep 5000 - ${EndIf} - - ${PushFilesToCheck} - - ${un.CheckForFilesInUse} $TmpVal - - Banner::destroy - - ; If there are files in use $TmpVal will be "true" - ${If} "$TmpVal" == "true" - ; If the message window is found the call to ManualCloseAppPrompt will - ; abort leaving the value of $TmpVal set to "FoundMessageWindow". - StrCpy $TmpVal "FoundMessageWindow" - ${un.ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_UNINSTALL)" - ; If the message window is not found set $TmpVal to "true" so the restart - ; required message is displayed. - StrCpy $TmpVal "true" - ${EndIf} - ${EndIf} -FunctionEnd - -Function un.preConfirm - ${If} ${FileExists} "$INSTDIR\distribution\modern-header.bmp" - ${AndIf} $hHeaderBitmap == "" - Delete "$PLUGINSDIR\modern-header.bmp" - CopyFiles /SILENT "$INSTDIR\distribution\modern-header.bmp" "$PLUGINSDIR\modern-header.bmp" - ${un.ChangeMUIHeaderImage} "$PLUGINSDIR\modern-header.bmp" - ${EndIf} - - ; Setup the unconfirm.ini file for the Custom Uninstall Confirm Page - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Settings" NumFields "3" - - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Type "label" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Text "$(UN_CONFIRM_UNINSTALLED_FROM)" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Left "0" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Right "-1" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Top "5" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Bottom "15" - - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Type "text" - ; The contents of this control must be set as follows in the pre function - ; ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 2" "HWND" - ; SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" State "" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Left "0" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Right "-1" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Top "17" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Bottom "30" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" flags "READONLY" - - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Type "label" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Text "$(UN_CONFIRM_CLICK)" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Left "0" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Right "-1" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Top "130" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Bottom "150" - - ${If} "$TmpVal" == "true" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Type "label" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Text "$(SUMMARY_REBOOT_REQUIRED_UNINSTALL)" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Left "0" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Right "-1" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Top "35" - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Bottom "45" - - WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Settings" NumFields "4" - ${EndIf} - - !insertmacro MUI_HEADER_TEXT "$(UN_CONFIRM_PAGE_TITLE)" "$(UN_CONFIRM_PAGE_SUBTITLE)" - ; The Summary custom page has a textbox that will automatically receive - ; focus. This sets the focus to the Install button instead. - !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "unconfirm.ini" - GetDlgItem $0 $HWNDPARENT 1 - System::Call "user32::SetFocus(i r0, i 0x0007, i,i)i" - ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 2" "HWND" - SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR" - !insertmacro MUI_INSTALLOPTIONS_SHOW -FunctionEnd - -################################################################################ -# Initialization Functions - -Function .onInit - ; Remove the current exe directory from the search order. - ; This only effects LoadLibrary calls and not implicitly loaded DLLs. - System::Call 'kernel32::SetDllDirectoryW(w "")' - - ; We need this set up for most of the helper.exe operations. - ${UninstallOnInitCommon} -FunctionEnd - -Function un.onInit - ; Remove the current exe directory from the search order. - ; This only effects LoadLibrary calls and not implicitly loaded DLLs. - System::Call 'kernel32::SetDllDirectoryW(w "")' - - StrCpy $LANGUAGE 0 - - ${un.UninstallUnOnInitCommon} - -; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be -; removed after we require NSIS 3.0a2 or greater. -!ifndef NSIS_PACKEDVERSION - ${If} ${AtLeastWinVista} - System::Call 'user32::SetProcessDPIAware()' - ${EndIf} -!endif - - !insertmacro InitInstallOptionsFile "unconfirm.ini" -FunctionEnd - -Function .onGUIEnd - ${OnEndCommon} -FunctionEnd - -Function un.onGUIEnd - ${un.OnEndCommon} -FunctionEnd |