From 0226b2f3913afb58a40c32eedb0a8fcc59ab15a3 Mon Sep 17 00:00:00 2001 From: Alex Mitev Date: Wed, 1 Mar 2017 16:58:46 +0200 Subject: [PATCH] Major changes: - removed dependancy from MUI2.nsh, now plugin can be used in any UI - added support for Ultra Modern UI, MUI 1 and NSIS native interface, fixed positioning of elements - added fully functional demos for all supported interfaces - full update of the documentation - support for the /uninstall parameter - always display page in installer (no elevation in the beginning), even if /allusers or /currentuser parameters are passed Other changes: - removed MUI_DEFAULT macro - COMPANY_NAME define is not required - rename InstallHidePagesBeforeComponents to InstallShowPagesBeforeComponents, UninstallHideBackButton to UninstallShowBackButton - removed MULTIUSER_INSTALLMODE_PROGRAMFILES, use MULTIUSER_INSTALLMODE_64_BIT instead (calls SetRegView 64 to avoid WOW6432Node registry redirection) - renamed HasTwoAvailableOptions to PerMachineOptionAvailable - new variables HasCurrentModeInstallation, PerMachineUninstallString, PerUserUninstallString - removed UAC_IsAdmin calls and used existing $IsAdmin variable instead - reduced UAC_IsInnerInstance calls via the new $IsInnerInstance variable - renamed CheckElevationRequired to CheckPageElevationRequired, called it from InstallModeLeave and SetShieldAndTexts to reduce code - proper elevation when /currentuser parameter is passed --- Demos/Common/Utils.nsh | 56 +++ Demos/MUI2_Limited/Setup.nsi | 248 ++++++++++ Demos/MUI2_Limited/Uninstall.nsh | 95 ++++ Demos/MUI2_Limited/readme.txt | 9 + Demos/MUI_1_2_Full/Setup.nsi | 288 ++++++++++++ Demos/MUI_1_2_Full/Uninstall.nsh | 115 +++++ Demos/MUI_1_2_Full/readme.txt | 10 + Demos/NSIS_Full/Setup.nsi | 241 ++++++++++ Demos/NSIS_Full/Uninstall.nsh | 110 +++++ Demos/NSIS_Full/readme.txt | 10 + Demos/UMUI_Ex_Full/Setup.nsi | 312 +++++++++++++ Demos/UMUI_Ex_Full/Uninstall.nsh | 122 +++++ Demos/UMUI_Ex_Full/readme.txt | 10 + Demos/test.bat | 381 ++++++++++++++++ Documentation/screenshot1.png | Bin 10416 -> 0 bytes Documentation/screenshot2.png | Bin 11283 -> 0 bytes Documentation/screenshot3.png | Bin 12323 -> 0 bytes Documentation/screenshot4.png | Bin 11569 -> 0 bytes Documentation/screenshot5.png | Bin 10721 -> 0 bytes Documentation/screenshot6.png | Bin 12049 -> 0 bytes Documentation/screenshot7.png | Bin 58819 -> 0 bytes Include/NsisMultiUser.nsh | 755 +++++++++++++++++-------------- License.txt | 19 + README.md | 221 +++------ Screenshots/01.png | Bin 0 -> 50604 bytes Screenshots/02.png | Bin 0 -> 53963 bytes Screenshots/03.png | Bin 0 -> 51534 bytes Screenshots/04.png | Bin 0 -> 50497 bytes Screenshots/05.png | Bin 0 -> 18343 bytes Screenshots/06.png | Bin 0 -> 18249 bytes Screenshots/07.png | Bin 0 -> 8992 bytes Screenshots/08.png | Bin 0 -> 11409 bytes Screenshots/09.png | Bin 0 -> 3879 bytes Screenshots/10.png | Bin 0 -> 53238 bytes Screenshots/11.png | Bin 0 -> 10313 bytes Screenshots/12.png | Bin 0 -> 19975 bytes 36 files changed, 2514 insertions(+), 488 deletions(-) create mode 100644 Demos/Common/Utils.nsh create mode 100644 Demos/MUI2_Limited/Setup.nsi create mode 100644 Demos/MUI2_Limited/Uninstall.nsh create mode 100644 Demos/MUI2_Limited/readme.txt create mode 100644 Demos/MUI_1_2_Full/Setup.nsi create mode 100644 Demos/MUI_1_2_Full/Uninstall.nsh create mode 100644 Demos/MUI_1_2_Full/readme.txt create mode 100644 Demos/NSIS_Full/Setup.nsi create mode 100644 Demos/NSIS_Full/Uninstall.nsh create mode 100644 Demos/NSIS_Full/readme.txt create mode 100644 Demos/UMUI_Ex_Full/Setup.nsi create mode 100644 Demos/UMUI_Ex_Full/Uninstall.nsh create mode 100644 Demos/UMUI_Ex_Full/readme.txt create mode 100644 Demos/test.bat delete mode 100644 Documentation/screenshot1.png delete mode 100644 Documentation/screenshot2.png delete mode 100644 Documentation/screenshot3.png delete mode 100644 Documentation/screenshot4.png delete mode 100644 Documentation/screenshot5.png delete mode 100644 Documentation/screenshot6.png delete mode 100644 Documentation/screenshot7.png create mode 100644 License.txt create mode 100644 Screenshots/01.png create mode 100644 Screenshots/02.png create mode 100644 Screenshots/03.png create mode 100644 Screenshots/04.png create mode 100644 Screenshots/05.png create mode 100644 Screenshots/06.png create mode 100644 Screenshots/07.png create mode 100644 Screenshots/08.png create mode 100644 Screenshots/09.png create mode 100644 Screenshots/10.png create mode 100644 Screenshots/11.png create mode 100644 Screenshots/12.png diff --git a/Demos/Common/Utils.nsh b/Demos/Common/Utils.nsh new file mode 100644 index 0000000..069fed4 --- /dev/null +++ b/Demos/Common/Utils.nsh @@ -0,0 +1,56 @@ +!include LogicLib.nsh +!include x64.nsh + +!define ERROR_ALREADY_EXISTS 0x000000b7 +!define ERROR_ACCESS_DENIED 0x5 + +!macro CheckPlatform PLATFORM + ${if} ${RunningX64} + !if ${PLATFORM} == "Win32" + MessageBox MB_ICONSTOP "Please, run the 64-bit installer of ${PRODUCT_NAME} on this version of Windows." /SD IDOK + Quit ; will SetErrorLevel 2 - Installation aborted by script + !endif + ${else} + !if ${PLATFORM} == "Win64" + MessageBox MB_ICONSTOP "Please, run the 32-bit installer of ${PRODUCT_NAME} on this version of Windows." /SD IDOK + Quit ; will SetErrorLevel 2 - Installation aborted by script + !endif + ${endif} +!macroend + +!macro CheckMinWinVer MIN_WIN_VER + ${ifnot} ${AtLeastWin${MIN_WIN_VER}} + MessageBox MB_ICONSTOP "This program requires at least Windows ${MIN_WIN_VER}." /SD IDOK + Quit ; will SetErrorLevel 2 - Installation aborted by script + ${endif} +!macroend + +!macro CheckSingleInstance SINGLE_INSTANCE_ID + System::Call 'kernel32::CreateMutex(i 0, i 0, t "Global\${SINGLE_INSTANCE_ID}") i .r0 ?e' + Pop $1 ; the stack contains the result of GetLastError + ${if} $1 = "${ERROR_ALREADY_EXISTS}" + ${orif} $1 = "${ERROR_ACCESS_DENIED}" ; ERROR_ACCESS_DENIED means the mutex was created by another user and we don't have access to open it, so application is running + System::Call 'kernel32::CloseHandle(i $0)' ; if the user closes the already running instance, allow to start a new one without closing the MessageBox + + ; will display NSIS taskbar button, no way to hide it before GUIInit, $HWNDPARENT is 0 + MessageBox MB_ICONSTOP "The setup of ${PRODUCT_NAME} is already running." /SD IDOK + + Quit ; will SetErrorLevel 2 - Installation aborted by script + ${endif} +!macroend + +Function un.DeleteRetryAbort + ; unlike the File instruction, Delete doesn't abort (un)installation on error - it just sets the error flag and skips the file as if nothing happened + try: + ClearErrors + Delete "$0" + ${if} ${errors} + MessageBox MB_RETRYCANCEL|MB_ICONSTOP "Error deleting file:$\r$\n$\r$\n$0$\r$\n$\r$\nClick Retry to try again, or$\r$\nCancel to stop the uninstall." /SD IDCANCEL IDRETRY try + Abort "Error deleting file $0" ; when called from section, will SetErrorLevel 2 - Installation aborted by script + ${endif} +FunctionEnd + +!macro un.DeleteRetryAbort filename + StrCpy $0 "${filename}" + Call un.DeleteRetryAbort +!macroend diff --git a/Demos/MUI2_Limited/Setup.nsi b/Demos/MUI2_Limited/Setup.nsi new file mode 100644 index 0000000..97ae810 --- /dev/null +++ b/Demos/MUI2_Limited/Setup.nsi @@ -0,0 +1,248 @@ +!addplugindir /x86-ansi ".\..\..\Plugins\x86-ansi" +!addplugindir /x86-unicode ".\..\..\Plugins\x86-unicode" +!addincludedir ".\..\..\Include" + +!include MUI2.nsh +!include UAC.nsh +!include NsisMultiUser.nsh +!include LogicLib.nsh +!include ".\..\Common\Utils.nsh" + +!define PRODUCT_NAME "NsisMultiUser MUI2 Limited Demo" ; name of the application as displayed to the user +!define VERSION "1.0" ; main version of the application (may be 0.1, alpha, beta, etc.) +!define PROGEXE "calc.exe" ; main application filename +!define COMPANY_NAME "Alex Mitev" ; company, used for registry tree hierarchy +!define PLATFORM "Win64" +!define MIN_WIN_VER "XP" +!define SINGLE_INSTANCE_ID "${COMPANY_NAME} ${PRODUCT_NAME} Unique ID" ; do not change this between program versions! +!define LICENSE_FILE "License.txt" ; license file, optional + +; NsisMultiUser optional defines +!define MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 1 ; value 0 is not supported - previous installation is not fully removed +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 +!define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 1 +!if ${PLATFORM} == "Win64" + !define MULTIUSER_INSTALLMODE_64_BIT 1 +!endif +!define MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" + +Var StartMenuFolder + +; Installer Attributes +Name "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" +OutFile "Setup_MUI2_Limited.exe" +BrandingText "©2017 ${COMPANY_NAME}" + +AllowSkipFiles off +SetOverwrite on ; (default setting) set to on except for where it is manually switched off +ShowInstDetails show +SetCompressor /SOLID lzma + +; Pages +!define MUI_ABORTWARNING ; Show a confirmation when cancelling the installation + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_WELCOME + +!ifdef LICENSE_FILE + !define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre + !insertmacro MUI_PAGE_LICENSE ".\..\..\${LICENSE_FILE}" +!endif + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_LICENSE "readme.txt" + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_FUNCTION PageInstallModeChangeMode +!insertmacro MULTIUSER_PAGE_INSTALLMODE + +!define MUI_COMPONENTSPAGE_SMALLDESC +!insertmacro MUI_PAGE_COMPONENTS + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageDirectoryPre +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PageDirectoryShow +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_NODISABLE ; Do not display the checkbox to disable the creation of Start Menu shortcuts +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" ; writing to $StartMenuFolder happens in MUI_STARTMENU_WRITE_END, so it's safe to use "SHCTX" here +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "StartMenuFolder" +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageStartMenuPre +!insertmacro MUI_PAGE_STARTMENU "" "$StartMenuFolder" + +!insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun +!insertmacro MUI_PAGE_FINISH + +!include Uninstall.nsh + +!insertmacro MUI_LANGUAGE "English" ; Set languages (first is default language) - must be inserted after all pages + +InstType "Typical" +InstType "Minimal" +InstType "Full" + +Section "Core Files (required)" SectionCoreFiles + SectionIn 1 2 3 RO + + ${if} $HasCurrentModeInstallation == 1 ; if there's an installed version, remove all optinal components (except "Core Files") + ; Clean up "Documentation" + Delete "$INSTDIR\readme.txt" + + ; Clean up "Program Group" - we check that we created Start menu folder, if $StartMenuFolder is empty, the whole $SMPROGRAMS directory will be removed! + ${if} "$StartMenuFolder" != "" + RMDir /r "$SMPROGRAMS\$StartMenuFolder" + ${endif} + + ; Clean up "Dektop Icon" + Delete "$DESKTOP\${PRODUCT_NAME}.lnk" + + ; Clean up "Start Menu Icon" + Delete "$STARTMENU\${PRODUCT_NAME}.lnk" + + ; Clean up "Quick Launch Icon" + Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" + ${endif} + + SetOutPath $INSTDIR + ; Write uninstaller and registry uninstall info as the first step, + ; so that the user has the option to run the uninstaller if sth. goes wrong + WriteUninstaller "${UNINSTALL_FILENAME}" + !insertmacro MULTIUSER_RegistryAddInstallInfo ; add registry keys + + File "C:\Windows\System32\${PROGEXE}" + !ifdef LICENSE_FILE + File ".\..\..\${LICENSE_FILE}" + !endif +SectionEnd + +Section "Documentation" SectionDocumentation + SectionIn 1 3 + + SetOutPath $INSTDIR + File "readme.txt" + +SectionEnd + +SectionGroup /e "Integration" SectionGroupIntegration + +Section "Program Group" SectionProgramGroup + SectionIn 1 3 + + !insertmacro MUI_STARTMENU_WRITE_BEGIN "" + + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" + + !ifdef LICENSE_FILE + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\License Agreement.lnk" "$INSTDIR\${LICENSE_FILE}" + !endif + ${if} $MultiUser.InstallMode == "AllUsers" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/allusers" + ${else} + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall (current user).lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/currentuser" + ${endif} + + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd + +Section "Dektop Icon" SectionDesktopIcon + SectionIn 1 3 + + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Start Menu Icon" SectionStartMenuIcon + SectionIn 3 + + CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Quick Launch" SectionQuickLaunchIcon + SectionIn 3 + + ; The QuickLaunch is always only for the current user + CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd +SectionGroupEnd + +; Modern install component descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionCoreFiles} "Core files requred to run ${PRODUCT_NAME}." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDocumentation} "Help files for ${PRODUCT_NAME}." + + !insertmacro MUI_DESCRIPTION_TEXT ${SectionGroupIntegration} "Select how to integrate the program in Windows." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionProgramGroup} "Create a ${PRODUCT_NAME} program group under Start Menu->Programs." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDesktopIcon} "Create ${PRODUCT_NAME} icon on the Desktop." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionStartMenuIcon} "Create ${PRODUCT_NAME} icon in the Start Menu." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionQuickLaunchIcon} "Create ${PRODUCT_NAME} icon in Quick Launch." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +; Callbacks +Function .onInit + !insertmacro CheckPlatform ${PLATFORM} + !insertmacro CheckMinWinVer ${MIN_WIN_VER} + ${ifnot} ${UAC_IsInnerInstance} + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_INIT +FunctionEnd + +Function PageWelcomeLicensePre + ${if} $InstallShowPagesBeforeComponents == 0 + Abort ; don't display the Welcome and License pages for the inner instance + ${endif} +FunctionEnd + +Function PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function PageDirectoryPre + GetDlgItem $0 $HWNDPARENT 1 + ${if} ${SectionIsSelected} ${SectionProgramGroup} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^NextBtn)" ; this is not the last page before installing + ${else} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^InstallBtn)" ; this is the last page before installing + ${endif} +FunctionEnd + +Function PageDirectoryShow + ${if} $CmdLineDir != "" + ${orif} $HasCurrentModeInstallation == 1 + FindWindow $R1 "#32770" "" $HWNDPARENT + + GetDlgItem $0 $R1 1019 ; Directory edit + SendMessage $0 ${EM_SETREADONLY} 1 0 ; read-only is better than disabled, as user can copy contents + + GetDlgItem $0 $R1 1001 ; Browse button + EnableWindow $0 0 + ${endif} +FunctionEnd + +Function PageStartMenuPre + ${ifnot} ${SectionIsSelected} ${SectionProgramGroup} + Abort ; don't display this dialog if SectionProgramGroup is not selected + ${endif} +FunctionEnd + +Function PageFinishRun + ; the installer might exit too soon before the application starts and it loses the right to be the foreground window and starts in the background + ; however, if there's no active window when the application starts, it will become the active window, so we hide the installer + HideWindow + ; the installer will show itself again quickly before closing (w/o Taskbar button), we move it offscreen + !define SWP_NOSIZE 0x0001 + !define SWP_NOZORDER 0x0004 + System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, 0, -1000, -1000, 0, 0, ${SWP_NOZORDER}|${SWP_NOSIZE})" + + !insertmacro UAC_AsUser_ExecShell "open" "$INSTDIR\${PROGEXE}" "" "$INSTDIR" "" +FunctionEnd + +Function .onInstFailed + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK +FunctionEnd + diff --git a/Demos/MUI2_Limited/Uninstall.nsh b/Demos/MUI2_Limited/Uninstall.nsh new file mode 100644 index 0000000..0027bfd --- /dev/null +++ b/Demos/MUI2_Limited/Uninstall.nsh @@ -0,0 +1,95 @@ +Var RunningFromInstaller + +; Installer Attributes +ShowUninstDetails show + +; Pages +!define MUI_UNABORTWARNING ; Show a confirmation when cancelling the installation + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_UNFUNCTION un.PageInstallModeChangeMode +!insertmacro MULTIUSER_UNPAGE_INSTALLMODE + +!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.PageComponentsShow +!insertmacro MUI_UNPAGE_COMPONENTS + +!insertmacro MUI_UNPAGE_INSTFILES + +Section "un.Program Files" SectionUninstallProgram + SectionIn RO + + ; Try to delete the EXE as the first step - if it's in use, don't remove anything else + !insertmacro un.DeleteRetryAbort "$INSTDIR\${PROGEXE}" + !ifdef LICENSE_FILE + !insertmacro un.DeleteRetryAbort "$INSTDIR\${LICENSE_FILE}" + !endif + + ; Clean up "Documentation" + !insertmacro un.DeleteRetryAbort "$INSTDIR\readme.txt" + + ; Clean up "Program Group" - we check that we created Start menu folder, if $StartMenuFolder is empty, the whole $SMPROGRAMS directory will be removed! + ${if} "$StartMenuFolder" != "" + RMDir /r "$SMPROGRAMS\$StartMenuFolder" + ${endif} + + ; Clean up "Dektop Icon" + !insertmacro un.DeleteRetryAbort "$DESKTOP\${PRODUCT_NAME}.lnk" + + ; Clean up "Start Menu Icon" + !insertmacro un.DeleteRetryAbort "$STARTMENU\${PRODUCT_NAME}.lnk" + + ; Clean up "Quick Launch Icon" + !insertmacro un.DeleteRetryAbort "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" +SectionEnd + +Section /o "un.Program Settings" SectionRemoveSettings + ; this section is executed only explicitly and shouldn't be placed in SectionUninstallProgram + DeleteRegKey HKCU "Software\${PRODUCT_NAME}" +SectionEnd + +Section "-Uninstall" ; hidden section, must always be the last one! + ; Remove the uninstaller from registry as the very last step - if sth. goes wrong, let the user run it again + !insertmacro MULTIUSER_RegistryRemoveInstallInfo ; Remove registry keys + + Delete "$INSTDIR\${UNINSTALL_FILENAME}" + ; remove the directory only if it is empty - the user might have saved some files in it + RMDir "$INSTDIR" +SectionEnd + +; Modern install component descriptions +!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionUninstallProgram} "Uninstall ${PRODUCT_NAME} files." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionRemoveSettings} "Remove ${PRODUCT_NAME} program settings. Select only if you don't plan to use the program in the future." +!insertmacro MUI_UNFUNCTION_DESCRIPTION_END + +; Callbacks +Function un.onInit + ${GetParameters} $R0 + + ${GetOptions} $R0 "/uninstall" $R1 + ${ifnot} ${errors} + StrCpy $RunningFromInstaller 1 + ${else} + StrCpy $RunningFromInstaller 0 + ${endif} + + ${ifnot} ${UAC_IsInnerInstance} + ${andif} $RunningFromInstaller == "0" + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +Function un.PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function un.PageComponentsShow + ; Show/hide the Back button + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 $UninstallShowBackButton +FunctionEnd + +Function un.onUninstFailed + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully uninstalled.$\r$\nPlease, restart Windows and run the uninstaller again." /SD IDOK +FunctionEnd diff --git a/Demos/MUI2_Limited/readme.txt b/Demos/MUI2_Limited/readme.txt new file mode 100644 index 0000000..7c240ad --- /dev/null +++ b/Demos/MUI2_Limited/readme.txt @@ -0,0 +1,9 @@ +NsisMultiUser MUI2 Limited Demo, based on the Modern User Interface 2 + +Features: +- does not fully uninstall previously installed version - only the additional components are removed (except Core files) + +Limitations: +- because new versions can add more components, downgrading is not secure - old version will not uninstall new components +- if previous version is installed, user can not set new installation folder (disabled in interface) +- supports only MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS = 1 diff --git a/Demos/MUI_1_2_Full/Setup.nsi b/Demos/MUI_1_2_Full/Setup.nsi new file mode 100644 index 0000000..c419409 --- /dev/null +++ b/Demos/MUI_1_2_Full/Setup.nsi @@ -0,0 +1,288 @@ +!addplugindir /x86-ansi ".\..\..\Plugins\x86-ansi" +!addplugindir /x86-unicode ".\..\..\Plugins\x86-unicode" +!addincludedir ".\..\..\Include" + +!include MUI.nsh +; OR +; !include MUI2.nsh +!include UAC.nsh +!include NsisMultiUser.nsh +!include LogicLib.nsh +!include ".\..\Common\Utils.nsh" + +!define PRODUCT_NAME "NsisMultiUser MUI_1_2 Full Demo" ; name of the application as displayed to the user +!define VERSION "1.0" ; main version of the application (may be 0.1, alpha, beta, etc.) +!define PROGEXE "calc.exe" ; main application filename +!define COMPANY_NAME "Alex Mitev" ; company, used for registry tree hierarchy +!define PLATFORM "Win64" +!define MIN_WIN_VER "XP" +!define SINGLE_INSTANCE_ID "${COMPANY_NAME} ${PRODUCT_NAME} Unique ID" ; do not change this between program versions! +!define LICENSE_FILE "License.txt" ; license file, optional + +; NsisMultiUser optional defines +!define MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 0 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 +!define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 1 +!if ${PLATFORM} == "Win64" + !define MULTIUSER_INSTALLMODE_64_BIT 1 +!endif +!define MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" + +Var StartMenuFolder + +; Installer Attributes +Name "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" +OutFile "Setup_MUI_1_2_Full.exe" +BrandingText "©2017 ${COMPANY_NAME}" + +AllowSkipFiles off +SetOverwrite on ; (default setting) set to on except for where it is manually switched off +ShowInstDetails show +SetCompressor /SOLID lzma + +; Pages +!define MUI_ABORTWARNING ; Show a confirmation when cancelling the installation + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_WELCOME + +!ifdef LICENSE_FILE + !define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre + !insertmacro MUI_PAGE_LICENSE ".\..\..\${LICENSE_FILE}" +!endif + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_LICENSE "readme.txt" + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_FUNCTION PageInstallModeChangeMode +!insertmacro MULTIUSER_PAGE_INSTALLMODE + +!define MUI_COMPONENTSPAGE_SMALLDESC +!insertmacro MUI_PAGE_COMPONENTS + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageDirectoryPre +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PageDirectoryShow +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_NODISABLE ; Do not display the checkbox to disable the creation of Start Menu shortcuts +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" ; writing to $StartMenuFolder happens in MUI_STARTMENU_WRITE_END, so it's safe to use "SHCTX" here +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "StartMenuFolder" +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageStartMenuPre +!insertmacro MUI_PAGE_STARTMENU "" "$StartMenuFolder" + +!insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun +!insertmacro MUI_PAGE_FINISH + +!include Uninstall.nsh + +!insertmacro MUI_LANGUAGE "English" ; Set languages (first is default language) - must be inserted after all pages + +InstType "Typical" +InstType "Minimal" +InstType "Full" + +Section "Core Files (required)" SectionCoreFiles + SectionIn 1 2 3 RO + + ; if there's an installed version, uninstall it first (I chose not to start the uninstaller silently, so that user sees what failed) + ; if both per-user and per-machine versions are installed, unistall the one that matches $MultiUser.InstallMode + StrCpy $0 "" + ${if} $HasCurrentModeInstallation == 1 + StrCpy $0 "$MultiUser.InstallMode" + ${else} + !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 + ${if} $HasPerMachineInstallation == 1 + StrCpy $0 "AllUsers" ; if there's no per-user installation, but there's per-machine installation, uninstall it + ${elseif} $HasPerUserInstallation == 1 + StrCpy $0 "CurrentUser" ; if there's no per-machine installation, but there's per-user installation, uninstall it + ${endif} + !endif + ${endif} + + ${if} "$0" != "" + ${if} $0 == "AllUsers" + StrCpy $1 "$PerMachineUninstallString" + StrCpy $3 "$PerMachineInstallationFolder" + ${else} + StrCpy $1 "$PerUserUninstallString" + StrCpy $3 "$PerUserInstallationFolder" + ${endif} + ${if} ${silent} + StrCpy $2 "/S" + ${else} + StrCpy $2 "" + ${endif} + + HideWindow + ClearErrors + StrCpy $0 0 + ExecWait '$1 /SS $2 _?=$3' $0 ; $1 is quoted in registry; the _? param stops the uninstaller from copying itself to the temporary directory, which is the only way for ExecWait to work + + ${if} ${errors} ; stay in installer + SetErrorLevel 2 ; Installation aborted by script + BringToFront + Abort "Error executing uninstaller." + ${else} + ${Switch} $0 + ${Case} 0 ; uninstaller completed successfully - continue with installation + BringToFront + ${Break} + ${Case} 1 ; Installation aborted by user (cancel button) + ${Case} 2 ; Installation aborted by script + SetErrorLevel $0 + Quit ; uninstaller was started, but completed with errors - Quit installer + ${Default} ; all other error codes - uninstaller could not start, elevate, etc. - Abort installer + SetErrorLevel $0 + BringToFront + Abort "Error executing uninstaller." + ${EndSwitch} + ${endif} + + Delete "$2\${UNINSTALL_FILENAME}" ; the uninstaller doesn't delete itself when not copied to the temp directory + RMDir "$2" + ${endif} + + SetOutPath $INSTDIR + ; Write uninstaller and registry uninstall info as the first step, + ; so that the user has the option to run the uninstaller if sth. goes wrong + WriteUninstaller "${UNINSTALL_FILENAME}" + !insertmacro MULTIUSER_RegistryAddInstallInfo ; add registry keys + + File "C:\Windows\System32\${PROGEXE}" + !ifdef LICENSE_FILE + File ".\..\..\${LICENSE_FILE}" + !endif +SectionEnd + +Section "Documentation" SectionDocumentation + SectionIn 1 3 + + SetOutPath $INSTDIR + File "readme.txt" + +SectionEnd + +SectionGroup /e "Integration" SectionGroupIntegration + +Section "Program Group" SectionProgramGroup + SectionIn 1 3 + + !insertmacro MUI_STARTMENU_WRITE_BEGIN "" + + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" + + !ifdef LICENSE_FILE + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\License Agreement.lnk" "$INSTDIR\${LICENSE_FILE}" + !endif + ${if} $MultiUser.InstallMode == "AllUsers" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/allusers" + ${else} + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall (current user).lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/currentuser" + ${endif} + + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd + +Section "Dektop Icon" SectionDesktopIcon + SectionIn 1 3 + + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Start Menu Icon" SectionStartMenuIcon + SectionIn 3 + + CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Quick Launch" SectionQuickLaunchIcon + SectionIn 3 + + ; The QuickLaunch is always only for the current user + CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd +SectionGroupEnd + +; Modern install component descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionCoreFiles} "Core files requred to run ${PRODUCT_NAME}." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDocumentation} "Help files for ${PRODUCT_NAME}." + + !insertmacro MUI_DESCRIPTION_TEXT ${SectionGroupIntegration} "Select how to integrate the program in Windows." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionProgramGroup} "Create a ${PRODUCT_NAME} program group under Start Menu->Programs." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDesktopIcon} "Create ${PRODUCT_NAME} icon on the Desktop." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionStartMenuIcon} "Create ${PRODUCT_NAME} icon in the Start Menu." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionQuickLaunchIcon} "Create ${PRODUCT_NAME} icon in Quick Launch." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +; Callbacks +Function .onInit + !insertmacro CheckPlatform ${PLATFORM} + !insertmacro CheckMinWinVer ${MIN_WIN_VER} + ${ifnot} ${UAC_IsInnerInstance} + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_INIT +FunctionEnd + +Function PageWelcomeLicensePre + ${if} $InstallShowPagesBeforeComponents == 0 + Abort ; don't display the Welcome and License pages for the inner instance + ${endif} +FunctionEnd + +Function PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function PageDirectoryPre + GetDlgItem $0 $HWNDPARENT 1 + ${if} ${SectionIsSelected} ${SectionProgramGroup} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^NextBtn)" ; this is not the last page before installing + ${else} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^InstallBtn)" ; this is the last page before installing + ${endif} +FunctionEnd + +Function PageDirectoryShow + ${if} $CmdLineDir != "" + FindWindow $R1 "#32770" "" $HWNDPARENT + + GetDlgItem $0 $R1 1019 ; Directory edit + SendMessage $0 ${EM_SETREADONLY} 1 0 ; read-only is better than disabled, as user can copy contents + + GetDlgItem $0 $R1 1001 ; Browse button + EnableWindow $0 0 + ${endif} +FunctionEnd + +Function PageStartMenuPre + ${ifnot} ${SectionIsSelected} ${SectionProgramGroup} + Abort ; don't display this dialog if SectionProgramGroup is not selected + ${endif} +FunctionEnd + +Function PageFinishRun + ; the installer might exit too soon before the application starts and it loses the right to be the foreground window and starts in the background + ; however, if there's no active window when the application starts, it will become the active window, so we hide the installer + HideWindow + ; the installer will show itself again quickly before closing (w/o Taskbar button), we move it offscreen + !define SWP_NOSIZE 0x0001 + !define SWP_NOZORDER 0x0004 + System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, 0, -1000, -1000, 0, 0, ${SWP_NOZORDER}|${SWP_NOSIZE})" + + !insertmacro UAC_AsUser_ExecShell "open" "$INSTDIR\${PROGEXE}" "" "$INSTDIR" "" +FunctionEnd + +Function .onInstFailed + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK +FunctionEnd + diff --git a/Demos/MUI_1_2_Full/Uninstall.nsh b/Demos/MUI_1_2_Full/Uninstall.nsh new file mode 100644 index 0000000..e0e34b6 --- /dev/null +++ b/Demos/MUI_1_2_Full/Uninstall.nsh @@ -0,0 +1,115 @@ +Var SemiSilentMode ; installer started uninstaller in semi-silent mode using /SS parameter +Var RunningFromInstaller ; installer started uninstaller using /uninstall parameter + +; Installer Attributes +ShowUninstDetails show + +; Pages +!define MUI_UNABORTWARNING ; Show a confirmation when cancelling the installation + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_UNFUNCTION un.PageInstallModeChangeMode +!insertmacro MULTIUSER_UNPAGE_INSTALLMODE + +!define MUI_PAGE_CUSTOMFUNCTION_PRE un.PageComponentsPre +!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.PageComponentsShow +!insertmacro MUI_UNPAGE_COMPONENTS + +!insertmacro MUI_UNPAGE_INSTFILES + +Section "un.Program Files" SectionUninstallProgram + SectionIn RO + + ; Try to delete the EXE as the first step - if it's in use, don't remove anything else + !insertmacro un.DeleteRetryAbort "$INSTDIR\${PROGEXE}" + !ifdef LICENSE_FILE + !insertmacro un.DeleteRetryAbort "$INSTDIR\${LICENSE_FILE}" + !endif + + ; Clean up "Documentation" + !insertmacro un.DeleteRetryAbort "$INSTDIR\readme.txt" + + ; Clean up "Program Group" - we check that we created Start menu folder, if $StartMenuFolder is empty, the whole $SMPROGRAMS directory will be removed! + ${if} "$StartMenuFolder" != "" + RMDir /r "$SMPROGRAMS\$StartMenuFolder" + ${endif} + + ; Clean up "Dektop Icon" + !insertmacro un.DeleteRetryAbort "$DESKTOP\${PRODUCT_NAME}.lnk" + + ; Clean up "Start Menu Icon" + !insertmacro un.DeleteRetryAbort "$STARTMENU\${PRODUCT_NAME}.lnk" + + ; Clean up "Quick Launch Icon" + !insertmacro un.DeleteRetryAbort "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" +SectionEnd + +Section /o "un.Program Settings" SectionRemoveSettings + ; this section is executed only explicitly and shouldn't be placed in SectionUninstallProgram + DeleteRegKey HKCU "Software\${PRODUCT_NAME}" +SectionEnd + +Section "-Uninstall" ; hidden section, must always be the last one! + ; Remove the uninstaller from registry as the very last step - if sth. goes wrong, let the user run it again + !insertmacro MULTIUSER_RegistryRemoveInstallInfo ; Remove registry keys + + Delete "$INSTDIR\${UNINSTALL_FILENAME}" + ; remove the directory only if it is empty - the user might have saved some files in it + RMDir "$INSTDIR" +SectionEnd + +; Modern install component descriptions +!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionUninstallProgram} "Uninstall ${PRODUCT_NAME} files." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionRemoveSettings} "Remove ${PRODUCT_NAME} program settings. Select only if you don't plan to use the program in the future." +!insertmacro MUI_UNFUNCTION_DESCRIPTION_END + +; Callbacks +Function un.onInit + ${GetParameters} $R0 + + ${GetOptions} $R0 "/uninstall" $R1 + ${ifnot} ${errors} + StrCpy $RunningFromInstaller 1 + ${else} + StrCpy $RunningFromInstaller 0 + ${endif} + + ${GetOptions} $R0 "/SS" $R1 + ${ifnot} ${errors} + StrCpy $SemiSilentMode 1 + SetAutoClose true ; auto close (if no errors) if we are called from the installer; if there are errors, will be automatically set to false + ${else} + StrCpy $SemiSilentMode 0 + ${endif} + + ${ifnot} ${UAC_IsInnerInstance} + ${andif} $RunningFromInstaller$SemiSilentMode == "00" + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +Function un.PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function un.PageComponentsPre + ${if} $SemiSilentMode == 1 + Abort ; if user is installing, no use to remove program settings anyway (should be compatible with all versions) + ${endif} +FunctionEnd + +Function un.PageComponentsShow + ; Show/hide the Back button + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 $UninstallShowBackButton +FunctionEnd + +Function un.onUninstFailed + ${if} $SemiSilentMode == 0 + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully uninstalled.$\r$\nPlease, restart Windows and run the uninstaller again." /SD IDOK + ${else} + MessageBox MB_ICONSTOP "${PRODUCT_NAME} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK + ${endif} +FunctionEnd diff --git a/Demos/MUI_1_2_Full/readme.txt b/Demos/MUI_1_2_Full/readme.txt new file mode 100644 index 0000000..2535525 --- /dev/null +++ b/Demos/MUI_1_2_Full/readme.txt @@ -0,0 +1,10 @@ +NsisMultiUser MUI2 Full Demo, based on the Modern User Interface 1 and 2 + +Features: +- supports MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS values 0 AND 1 +- fully uninstalls previously installed version (if any) by running its uninstaller before installing new version +- can safely downgrade and upgrade +- because previous version is fully uninstalled, user can set new installation folder, new start menu folder and choose different components + +Limitations: +none \ No newline at end of file diff --git a/Demos/NSIS_Full/Setup.nsi b/Demos/NSIS_Full/Setup.nsi new file mode 100644 index 0000000..3e1d9ec --- /dev/null +++ b/Demos/NSIS_Full/Setup.nsi @@ -0,0 +1,241 @@ +!addplugindir /x86-ansi ".\..\..\Plugins\x86-ansi" +!addplugindir /x86-unicode ".\..\..\Plugins\x86-unicode" +!addincludedir ".\..\..\Include" + +!include UAC.nsh +!include NsisMultiUser.nsh +!include LogicLib.nsh +!include ".\..\Common\Utils.nsh" + +!define PRODUCT_NAME "NsisMultiUser NSIS Full Demo" ; name of the application as displayed to the user +!define VERSION "1.0" ; main version of the application (may be 0.1, alpha, beta, etc.) +!define PROGEXE "calc.exe" ; main application filename +!define COMPANY_NAME "Alex Mitev" ; company, used for registry tree hierarchy +!define PLATFORM "Win64" +!define MIN_WIN_VER "XP" +!define SINGLE_INSTANCE_ID "${COMPANY_NAME} ${PRODUCT_NAME} Unique ID" ; do not change this between program versions! +!define LICENSE_FILE "License.txt" ; license file, optional + +; NsisMultiUser optional defines +!define MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 0 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 +!define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 1 +!if ${PLATFORM} == "Win64" + !define MULTIUSER_INSTALLMODE_64_BIT 1 +!endif +!define MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" + +; Installer Attributes +Name "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" +OutFile "Setup_NSIS_Full.exe" +BrandingText "©2017 ${COMPANY_NAME}" + +AllowSkipFiles off +SetOverwrite on ; (default setting) set to on except for where it is manually switched off +ShowInstDetails show +SetCompressor /SOLID lzma +XPStyle on + +; Pages +!ifdef LICENSE_FILE + PageEx license + PageCallbacks PageWelcomeLicensePre EmptyCallback EmptyCallback + LicenseData ".\..\..\${LICENSE_FILE}" + PageExEnd +!endif + +PageEx license + PageCallbacks PageWelcomeLicensePre EmptyCallback EmptyCallback + LicenseData "readme.txt" +PageExEnd + +!insertmacro MULTIUSER_PAGE_INSTALLMODE + +PageEx components +PageExEnd + +PageEx directory + PageCallbacks PageDirectoryPre PageDirectoryShow EmptyCallback +PageExEnd + +PageEx instfiles +PageExEnd + +!include Uninstall.nsh + +InstType "Typical" +InstType "Minimal" +InstType "Full" + +Section "Core Files (required)" SectionCoreFiles + SectionIn 1 2 3 RO + + ; if there's an installed version, uninstall it first (I chose not to start the uninstaller silently, so that user sees what failed) + ; if both per-user and per-machine versions are installed, unistall the one that matches $MultiUser.InstallMode + StrCpy $0 "" + ${if} $HasCurrentModeInstallation == 1 + StrCpy $0 "$MultiUser.InstallMode" + ${else} + !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 + ${if} $HasPerMachineInstallation == 1 + StrCpy $0 "AllUsers" ; if there's no per-user installation, but there's per-machine installation, uninstall it + ${elseif} $HasPerUserInstallation == 1 + StrCpy $0 "CurrentUser" ; if there's no per-machine installation, but there's per-user installation, uninstall it + ${endif} + !endif + ${endif} + + ${if} "$0" != "" + ${if} $0 == "AllUsers" + StrCpy $1 "$PerMachineUninstallString" + StrCpy $3 "$PerMachineInstallationFolder" + ${else} + StrCpy $1 "$PerUserUninstallString" + StrCpy $3 "$PerUserInstallationFolder" + ${endif} + ${if} ${silent} + StrCpy $2 "/S" + ${else} + StrCpy $2 "" + ${endif} + + HideWindow + ClearErrors + StrCpy $0 0 + ExecWait '$1 /SS $2 _?=$3' $0 ; $1 is quoted in registry; the _? param stops the uninstaller from copying itself to the temporary directory, which is the only way for ExecWait to work + + ${if} ${errors} ; stay in installer + SetErrorLevel 2 ; Installation aborted by script + BringToFront + Abort "Error executing uninstaller." + ${else} + ${Switch} $0 + ${Case} 0 ; uninstaller completed successfully - continue with installation + BringToFront + ${Break} + ${Case} 1 ; Installation aborted by user (cancel button) + ${Case} 2 ; Installation aborted by script + SetErrorLevel $0 + Quit ; uninstaller was started, but completed with errors - Quit installer + ${Default} ; all other error codes - uninstaller could not start, elevate, etc. - Abort installer + SetErrorLevel $0 + BringToFront + Abort "Error executing uninstaller." + ${EndSwitch} + ${endif} + + Delete "$2\${UNINSTALL_FILENAME}" ; the uninstaller doesn't delete itself when not copied to the temp directory + RMDir "$2" + ${endif} + + SetOutPath $INSTDIR + ; Write uninstaller and registry uninstall info as the first step, + ; so that the user has the option to run the uninstaller if sth. goes wrong + WriteUninstaller "${UNINSTALL_FILENAME}" + !insertmacro MULTIUSER_RegistryAddInstallInfo ; add registry keys + + File "C:\Windows\System32\${PROGEXE}" + !ifdef LICENSE_FILE + File ".\..\..\${LICENSE_FILE}" + !endif +SectionEnd + +Section "Documentation" SectionDocumentation + SectionIn 1 3 + + SetOutPath $INSTDIR + File "readme.txt" + +SectionEnd + +SectionGroup /e "Integration" SectionGroupIntegration + +Section "Program Group" SectionProgramGroup + SectionIn 1 3 + + CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" + + !ifdef LICENSE_FILE + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\License Agreement.lnk" "$INSTDIR\${LICENSE_FILE}" + !endif + ${if} $MultiUser.InstallMode == "AllUsers" + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/allusers" + ${else} + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall (current user).lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/currentuser" + ${endif} +SectionEnd + +Section "Dektop Icon" SectionDesktopIcon + SectionIn 1 3 + + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Start Menu Icon" SectionStartMenuIcon + SectionIn 3 + + CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Quick Launch" SectionQuickLaunchIcon + SectionIn 3 + + ; The QuickLaunch is always only for the current user + CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd +SectionGroupEnd + +; Callbacks +Function .onInit + !insertmacro CheckPlatform ${PLATFORM} + !insertmacro CheckMinWinVer ${MIN_WIN_VER} + ${ifnot} ${UAC_IsInnerInstance} + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_INIT +FunctionEnd + +Function EmptyCallback +FunctionEnd + +Function PageWelcomeLicensePre + ${if} $InstallShowPagesBeforeComponents == 0 + Abort ; don't display the Welcome and License pages for the inner instance + ${endif} +FunctionEnd + +Function PageDirectoryPre + GetDlgItem $0 $HWNDPARENT 1 + ${if} ${SectionIsSelected} ${SectionProgramGroup} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^NextBtn)" ; this is not the last page before installing + ${else} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^InstallBtn)" ; this is the last page before installing + ${endif} +FunctionEnd + +Function PageDirectoryShow + ${if} $CmdLineDir != "" + FindWindow $R1 "#32770" "" $HWNDPARENT + + GetDlgItem $0 $R1 1019 ; Directory edit + SendMessage $0 ${EM_SETREADONLY} 1 0 ; read-only is better than disabled, as user can copy contents + + GetDlgItem $0 $R1 1001 ; Browse button + EnableWindow $0 0 + ${endif} +FunctionEnd + +Function .onUserAbort + MessageBox MB_YESNO|MB_ICONEXCLAMATION "Are you sure you want to quit $(^Name) Setup?" IDYES mui.quit + + Abort + mui.quit: +FunctionEnd + +Function .onInstFailed + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK +FunctionEnd + diff --git a/Demos/NSIS_Full/Uninstall.nsh b/Demos/NSIS_Full/Uninstall.nsh new file mode 100644 index 0000000..1165eb4 --- /dev/null +++ b/Demos/NSIS_Full/Uninstall.nsh @@ -0,0 +1,110 @@ +Var SemiSilentMode ; installer started uninstaller in semi-silent mode using /SS parameter +Var RunningFromInstaller ; installer started uninstaller using /uninstall parameter + +; Installer Attributes +ShowUninstDetails show + +; Pages +!insertmacro MULTIUSER_UNPAGE_INSTALLMODE + +UninstPage components un.PageComponentsPre un.PageComponentsShow un.EmptyCallback + +UninstPage instfiles + +Section "un.Program Files" SectionUninstallProgram + SectionIn RO + + ; Try to delete the EXE as the first step - if it's in use, don't remove anything else + !insertmacro un.DeleteRetryAbort "$INSTDIR\${PROGEXE}" + !ifdef LICENSE_FILE + !insertmacro un.DeleteRetryAbort "$INSTDIR\${LICENSE_FILE}" + !endif + + ; Clean up "Documentation" + !insertmacro un.DeleteRetryAbort "$INSTDIR\readme.txt" + + ; Clean up "Program Group" + RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" + + ; Clean up "Dektop Icon" + !insertmacro un.DeleteRetryAbort "$DESKTOP\${PRODUCT_NAME}.lnk" + + ; Clean up "Start Menu Icon" + !insertmacro un.DeleteRetryAbort "$STARTMENU\${PRODUCT_NAME}.lnk" + + ; Clean up "Quick Launch Icon" + !insertmacro un.DeleteRetryAbort "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" +SectionEnd + +Section /o "un.Program Settings" SectionRemoveSettings + ; this section is executed only explicitly and shouldn't be placed in SectionUninstallProgram + DeleteRegKey HKCU "Software\${PRODUCT_NAME}" +SectionEnd + +Section "-Uninstall" ; hidden section, must always be the last one! + ; Remove the uninstaller from registry as the very last step - if sth. goes wrong, let the user run it again + !insertmacro MULTIUSER_RegistryRemoveInstallInfo ; Remove registry keys + + Delete "$INSTDIR\${UNINSTALL_FILENAME}" + ; remove the directory only if it is empty - the user might have saved some files in it + RMDir "$INSTDIR" +SectionEnd + +; Callbacks +Function un.onInit + StrCpy $RunningFromInstaller 0 + ${GetParameters} $R0 + + ${GetOptions} $R0 "/uninstall" $R1 + ${ifnot} ${errors} + StrCpy $RunningFromInstaller 1 + ${else} + StrCpy $RunningFromInstaller 0 + ${endif} + + ${GetOptions} $R0 "/SS" $R1 + ${ifnot} ${errors} + StrCpy $SemiSilentMode 1 + SetAutoClose true ; auto close (if no errors) if we are called from the installer; if there are errors, will be automatically set to false + ${else} + StrCpy $SemiSilentMode 0 + ${endif} + + ${ifnot} ${UAC_IsInnerInstance} + ${andif} $RunningFromInstaller$SemiSilentMode == "00" + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +Function un.EmptyCallback +FunctionEnd + +Function un.PageComponentsPre + ${if} $RunningFromInstaller == 1 + Abort ; if user is installing, no use to remove program settings anyway (should be compatible with all versions) + ${endif} +FunctionEnd + +Function un.PageComponentsShow + ; Show/hide the Back button + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 $UninstallShowBackButton +FunctionEnd + +Function un.onUserAbort + MessageBox MB_YESNO|MB_ICONEXCLAMATION "Are you sure you want to quit $(^Name) Uninstall?" IDYES mui.quit + + Abort + mui.quit: +FunctionEnd + + +Function un.onUninstFailed + ${if} $SemiSilentMode == 0 + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully uninstalled.$\r$\nPlease, restart Windows and run the uninstaller again." /SD IDOK + ${else} + MessageBox MB_ICONSTOP "${PRODUCT_NAME} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK + ${endif} +FunctionEnd diff --git a/Demos/NSIS_Full/readme.txt b/Demos/NSIS_Full/readme.txt new file mode 100644 index 0000000..1ba84ae --- /dev/null +++ b/Demos/NSIS_Full/readme.txt @@ -0,0 +1,10 @@ +NsisMultiUser NSIS Full Demo, based on the NSIS built-in pages + +Features: +- supports MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS values 0 AND 1 +- fully uninstalls previously installed version (if any) by running its uninstaller before installing new version +- can safely downgrade and upgrade +- because previous version is fully uninstalled, user can set new installation folder, new start menu folder and choose different components + +Limitations: +none \ No newline at end of file diff --git a/Demos/UMUI_Ex_Full/Setup.nsi b/Demos/UMUI_Ex_Full/Setup.nsi new file mode 100644 index 0000000..5bce724 --- /dev/null +++ b/Demos/UMUI_Ex_Full/Setup.nsi @@ -0,0 +1,312 @@ +!addplugindir /x86-ansi ".\..\..\Plugins\x86-ansi" +!addplugindir /x86-unicode ".\..\..\Plugins\x86-unicode" +!addincludedir ".\..\..\Include" + +!include UMUI.nsh +; OR +; !include MUIEx.nsh +!include UAC.nsh +!include NsisMultiUser.nsh +!include LogicLib.nsh +!include ".\..\Common\Utils.nsh" + +!define PRODUCT_NAME "NsisMultiUser UMUI Full Demo" ; name of the application as displayed to the user +!define VERSION "1.0" ; main version of the application (may be 0.1, alpha, beta, etc.) +!define PROGEXE "calc.exe" ; main application filename +!define COMPANY_NAME "Alex Mitev" ; company, used for registry tree hierarchy +!define PLATFORM "Win64" +!define MIN_WIN_VER "XP" +!define SINGLE_INSTANCE_ID "${COMPANY_NAME} ${PRODUCT_NAME} Unique ID" ; do not change this between program versions! +!define LICENSE_FILE "License.txt" ; license file, optional + +; NsisMultiUser optional defines +!define MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 0 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 +!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 +!define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 1 +!if ${PLATFORM} == "Win64" + !define MULTIUSER_INSTALLMODE_64_BIT 1 +!endif +!define MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" + +Var StartMenuFolder + +; Installer Attributes +Name "${PRODUCT_NAME} ${VERSION} ${PLATFORM}" +OutFile "Setup_UMUI_Full.exe" +BrandingText "©2017 ${COMPANY_NAME}" + +AllowSkipFiles off +SetOverwrite on ; (default setting) set to on except for where it is manually switched off +ShowInstDetails show +SetCompressor /SOLID lzma + +; Pages +; You have 2 options here: +; 1. Set "UMUI_XPSTYLE on" to display the Shield on Next button, which causes non-skinnable radio buttons, group boxes and check boxes (see http://forums.winamp.com/showthread.php?t=399899), +; which requires the use of a light theme +; 2. Remove the "UMUI_XPSTYLE on", use the standard (dark) theme and live without the Next button Shield +!define UMUI_SKIN SoftBlue +!define UMUI_NOBOTTOMIMAGE +!define UMUI_NO_BUTTONIMAGE +!define UMUI_XPSTYLE on + +!define MUI_ABORTWARNING ; Show a confirmation when cancelling the installation + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_WELCOME + +!ifdef LICENSE_FILE + !define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre + !insertmacro MUI_PAGE_LICENSE ".\..\..\${LICENSE_FILE}" +!endif + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageWelcomeLicensePre +!insertmacro MUI_PAGE_LICENSE "readme.txt" + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_FUNCTION PageInstallModeChangeMode +!insertmacro MULTIUSER_PAGE_INSTALLMODE + +!define MUI_COMPONENTSPAGE_SMALLDESC +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PageComponentsShow +!insertmacro MUI_PAGE_COMPONENTS + +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageDirectoryPre +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PageDirectoryShow +!insertmacro MUI_PAGE_DIRECTORY + +!define MUI_STARTMENUPAGE_NODISABLE ; Do not display the checkbox to disable the creation of Start Menu shortcuts +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" ; writing to $StartMenuFolder happens in MUI_STARTMENU_WRITE_END, so it's safe to use "SHCTX" here +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "StartMenuFolder" +!define MUI_PAGE_CUSTOMFUNCTION_PRE PageStartMenuPre +!insertmacro MUI_PAGE_STARTMENU "" "$StartMenuFolder" + +!insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun +!insertmacro MUI_PAGE_FINISH + +!include Uninstall.nsh + +!insertmacro MUI_LANGUAGE "English" ; Set languages (first is default language) - must be inserted after all pages + +InstType "Typical" +InstType "Minimal" +InstType "Full" + +Section "Core Files (required)" SectionCoreFiles + SectionIn 1 2 3 RO + + ; Ultra Modern UI modifies shell var context, see http://forums.winamp.com/showthread.php?t=399898 + ${if} $MultiUser.InstallMode == "AllUsers" + SetShellVarContext all + ${else} + SetShellVarContext current + ${endif} + + ; if there's an installed version, uninstall it first (I chose not to start the uninstaller silently, so that user sees what failed) + ; if both per-user and per-machine versions are installed, unistall the one that matches $MultiUser.InstallMode + StrCpy $0 "" + ${if} $HasCurrentModeInstallation == 1 + StrCpy $0 "$MultiUser.InstallMode" + ${else} + !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 + ${if} $HasPerMachineInstallation == 1 + StrCpy $0 "AllUsers" ; if there's no per-user installation, but there's per-machine installation, uninstall it + ${elseif} $HasPerUserInstallation == 1 + StrCpy $0 "CurrentUser" ; if there's no per-machine installation, but there's per-user installation, uninstall it + ${endif} + !endif + ${endif} + + ${if} "$0" != "" + ${if} $0 == "AllUsers" + StrCpy $1 "$PerMachineUninstallString" + StrCpy $3 "$PerMachineInstallationFolder" + ${else} + StrCpy $1 "$PerUserUninstallString" + StrCpy $3 "$PerUserInstallationFolder" + ${endif} + ${if} ${silent} + StrCpy $2 "/S" + ${else} + StrCpy $2 "" + ${endif} + + HideWindow + ClearErrors + StrCpy $0 0 + ExecWait '$1 /SS $2 _?=$3' $0 ; $1 is quoted in registry; the _? param stops the uninstaller from copying itself to the temporary directory, which is the only way for ExecWait to work + + ${if} ${errors} ; stay in installer + SetErrorLevel 2 ; Installation aborted by script + BringToFront + Abort "Error executing uninstaller." + ${else} + ${Switch} $0 + ${Case} 0 ; uninstaller completed successfully - continue with installation + BringToFront + ${Break} + ${Case} 1 ; Installation aborted by user (cancel button) + ${Case} 2 ; Installation aborted by script + SetErrorLevel $0 + Quit ; uninstaller was started, but completed with errors - Quit installer + ${Default} ; all other error codes - uninstaller could not start, elevate, etc. - Abort installer + SetErrorLevel $0 + BringToFront + Abort "Error executing uninstaller." + ${EndSwitch} + ${endif} + + Delete "$2\${UNINSTALL_FILENAME}" ; the uninstaller doesn't delete itself when not copied to the temp directory + RMDir "$2" + ${endif} + + SetOutPath $INSTDIR + ; Write uninstaller and registry uninstall info as the first step, + ; so that the user has the option to run the uninstaller if sth. goes wrong + WriteUninstaller "${UNINSTALL_FILENAME}" + !insertmacro MULTIUSER_RegistryAddInstallInfo ; add registry keys + + File "C:\Windows\System32\${PROGEXE}" + !ifdef LICENSE_FILE + File ".\..\..\${LICENSE_FILE}" + !endif +SectionEnd + +Section "Documentation" SectionDocumentation + SectionIn 1 3 + + SetOutPath $INSTDIR + File "readme.txt" + +SectionEnd + +SectionGroup /e "Integration" SectionGroupIntegration + +Section "Program Group" SectionProgramGroup + SectionIn 1 3 + + !insertmacro MUI_STARTMENU_WRITE_BEGIN "" + + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" + + !ifdef LICENSE_FILE + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\License Agreement.lnk" "$INSTDIR\${LICENSE_FILE}" + !endif + ${if} $MultiUser.InstallMode == "AllUsers" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/allusers" + ${else} + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall (current user).lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "/currentuser" + ${endif} + + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd + +Section "Dektop Icon" SectionDesktopIcon + SectionIn 1 3 + + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Start Menu Icon" SectionStartMenuIcon + SectionIn 3 + + CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd + +Section /o "Quick Launch" SectionQuickLaunchIcon + SectionIn 3 + + ; The QuickLaunch is always only for the current user + CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${PROGEXE}" +SectionEnd +SectionGroupEnd + +; Modern install component descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionCoreFiles} "Core files requred to run ${PRODUCT_NAME}." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDocumentation} "Help files for ${PRODUCT_NAME}." + + !insertmacro MUI_DESCRIPTION_TEXT ${SectionGroupIntegration} "Select how to integrate the program in Windows." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionProgramGroup} "Create a ${PRODUCT_NAME} program group under Start Menu->Programs." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionDesktopIcon} "Create ${PRODUCT_NAME} icon on the Desktop." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionStartMenuIcon} "Create ${PRODUCT_NAME} icon in the Start Menu." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionQuickLaunchIcon} "Create ${PRODUCT_NAME} icon in Quick Launch." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +; Callbacks +Function .onInit + !insertmacro CheckPlatform ${PLATFORM} + !insertmacro CheckMinWinVer ${MIN_WIN_VER} + ${ifnot} ${UAC_IsInnerInstance} + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_INIT +FunctionEnd + +Function PageWelcomeLicensePre + ${if} $InstallShowPagesBeforeComponents == 0 + Abort ; don't display the Welcome and License pages for the inner instance + ${endif} +FunctionEnd + +Function PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function PageComponentsShow + ; UMUI hides the Back button on the Components page for the inner instance, which makes sense, as this is the 1st page, + ; but we need to show it to return to the outer instance + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 1 +FunctionEnd + +Function PageDirectoryPre + GetDlgItem $0 $HWNDPARENT 1 + ${if} ${SectionIsSelected} ${SectionProgramGroup} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^NextBtn)" ; this is not the last page before installing + ${else} + SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^InstallBtn)" ; this is the last page before installing + ${endif} +FunctionEnd + +Function PageDirectoryShow + ${if} $CmdLineDir != "" + FindWindow $R1 "#32770" "" $HWNDPARENT + + GetDlgItem $0 $R1 1019 ; Directory edit + SendMessage $0 ${EM_SETREADONLY} 1 0 ; read-only is better than disabled, as user can copy contents + + GetDlgItem $0 $R1 1001 ; Browse button + EnableWindow $0 0 + ${endif} +FunctionEnd + +Function PageStartMenuPre + ${ifnot} ${SectionIsSelected} ${SectionProgramGroup} + Abort ; don't display this dialog if SectionProgramGroup is not selected + ${endif} +FunctionEnd + +Function PageFinishRun + ; the installer might exit too soon before the application starts and it loses the right to be the foreground window and starts in the background + ; however, if there's no active window when the application starts, it will become the active window, so we hide the installer + HideWindow + ; the installer will show itself again quickly before closing (w/o Taskbar button), we move it offscreen + !define SWP_NOSIZE 0x0001 + !define SWP_NOZORDER 0x0004 + System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, 0, -1000, -1000, 0, 0, ${SWP_NOZORDER}|${SWP_NOSIZE})" + + !insertmacro UAC_AsUser_ExecShell "open" "$INSTDIR\${PROGEXE}" "" "$INSTDIR" "" +FunctionEnd + +Function .onInstFailed + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK +FunctionEnd + diff --git a/Demos/UMUI_Ex_Full/Uninstall.nsh b/Demos/UMUI_Ex_Full/Uninstall.nsh new file mode 100644 index 0000000..d4b7150 --- /dev/null +++ b/Demos/UMUI_Ex_Full/Uninstall.nsh @@ -0,0 +1,122 @@ +Var SemiSilentMode ; installer started uninstaller in semi-silent mode using /SS parameter +Var RunningFromInstaller ; installer started uninstaller using /uninstall parameter + +; Installer Attributes +ShowUninstDetails show + +; Pages +!define MUI_UNABORTWARNING ; Show a confirmation when cancelling the installation + +!define MULTIUSER_INSTALLMODE_CHANGE_MODE_UNFUNCTION un.PageInstallModeChangeMode +!insertmacro MULTIUSER_UNPAGE_INSTALLMODE + +!define MUI_PAGE_CUSTOMFUNCTION_PRE un.PageComponentsPre +!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.PageComponentsShow +!insertmacro MUI_UNPAGE_COMPONENTS + +!insertmacro MUI_UNPAGE_INSTFILES + +Section "un.Program Files" SectionUninstallProgram + SectionIn RO + + ; Ultra Modern UI modifies shell var context, see http://forums.winamp.com/showthread.php?t=399898 + ${if} $MultiUser.InstallMode == "AllUsers" + SetShellVarContext all + ${else} + SetShellVarContext current + ${endif} + + ; Try to delete the EXE as the first step - if it's in use, don't remove anything else + !insertmacro un.DeleteRetryAbort "$INSTDIR\${PROGEXE}" + !ifdef LICENSE_FILE + !insertmacro un.DeleteRetryAbort "$INSTDIR\${LICENSE_FILE}" + !endif + + ; Clean up "Documentation" + !insertmacro un.DeleteRetryAbort "$INSTDIR\readme.txt" + + ; Clean up "Program Group" - we check that we created Start menu folder, if $StartMenuFolder is empty, the whole $SMPROGRAMS directory will be removed! + ${if} "$StartMenuFolder" != "" + RMDir /r "$SMPROGRAMS\$StartMenuFolder" + ${endif} + + ; Clean up "Dektop Icon" + !insertmacro un.DeleteRetryAbort "$DESKTOP\${PRODUCT_NAME}.lnk" + + ; Clean up "Start Menu Icon" + !insertmacro un.DeleteRetryAbort "$STARTMENU\${PRODUCT_NAME}.lnk" + + ; Clean up "Quick Launch Icon" + !insertmacro un.DeleteRetryAbort "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" +SectionEnd + +Section /o "un.Program Settings" SectionRemoveSettings + ; this section is executed only explicitly and shouldn't be placed in SectionUninstallProgram + DeleteRegKey HKCU "Software\${PRODUCT_NAME}" +SectionEnd + +Section "-Uninstall" ; hidden section, must always be the last one! + ; Remove the uninstaller from registry as the very last step - if sth. goes wrong, let the user run it again + !insertmacro MULTIUSER_RegistryRemoveInstallInfo ; Remove registry keys + + Delete "$INSTDIR\${UNINSTALL_FILENAME}" + ; remove the directory only if it is empty - the user might have saved some files in it + RMDir "$INSTDIR" +SectionEnd + +; Modern install component descriptions +!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SectionUninstallProgram} "Uninstall ${PRODUCT_NAME} files." + !insertmacro MUI_DESCRIPTION_TEXT ${SectionRemoveSettings} "Remove ${PRODUCT_NAME} program settings. Select only if you don't plan to use the program in the future." +!insertmacro MUI_UNFUNCTION_DESCRIPTION_END + +; Callbacks +Function un.onInit + ${GetParameters} $R0 + + ${GetOptions} $R0 "/uninstall" $R1 + ${ifnot} ${errors} + StrCpy $RunningFromInstaller 1 + ${else} + StrCpy $RunningFromInstaller 0 + ${endif} + + ${GetOptions} $R0 "/SS" $R1 + ${ifnot} ${errors} + StrCpy $SemiSilentMode 1 + SetAutoClose true ; auto close (if no errors) if we are called from the installer; if there are errors, will be automatically set to false + ${else} + StrCpy $SemiSilentMode 0 + ${endif} + + ${ifnot} ${UAC_IsInnerInstance} + ${andif} $RunningFromInstaller$SemiSilentMode == "00" + !insertmacro CheckSingleInstance "${SINGLE_INSTANCE_ID}" + ${endif} + + !insertmacro MULTIUSER_UNINIT +FunctionEnd + +Function un.PageInstallModeChangeMode + !insertmacro MUI_STARTMENU_GETFOLDER "" $StartMenuFolder +FunctionEnd + +Function un.PageComponentsPre + ${if} $SemiSilentMode == 1 + Abort ; if user is installing, no use to remove program settings anyway (should be compatible with all versions) + ${endif} +FunctionEnd + +Function un.PageComponentsShow + ; Show/hide the Back button + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 $UninstallShowBackButton +FunctionEnd + +Function un.onUninstFailed + ${if} $SemiSilentMode == 0 + MessageBox MB_ICONSTOP "${PRODUCT_NAME} ${VERSION} could not be fully uninstalled.$\r$\nPlease, restart Windows and run the uninstaller again." /SD IDOK + ${else} + MessageBox MB_ICONSTOP "${PRODUCT_NAME} could not be fully installed.$\r$\nPlease, restart Windows and run the setup program again." /SD IDOK + ${endif} +FunctionEnd diff --git a/Demos/UMUI_Ex_Full/readme.txt b/Demos/UMUI_Ex_Full/readme.txt new file mode 100644 index 0000000..278295d --- /dev/null +++ b/Demos/UMUI_Ex_Full/readme.txt @@ -0,0 +1,10 @@ +NsisMultiUser UMUI Full Demo, based on the Ultra Modern and ModernUIEx User Interfaces, using the standard MUI dialogs + +Features: +- supports MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS values 0 AND 1 +- fully uninstalls previously installed version (if any) by running its uninstaller before installing new version +- can safely downgrade and upgrade +- because previous version is fully uninstalled, user can set new installation folder, new start menu folder and choose different components + +Limitations: +none \ No newline at end of file diff --git a/Demos/test.bat b/Demos/test.bat new file mode 100644 index 0000000..af63138 --- /dev/null +++ b/Demos/test.bat @@ -0,0 +1,381 @@ +:: test by running this file both as user and as admin + +@echo OFF +:: set setup="MUI_1_2_Full\Setup_MUI_1_2_Full.exe" +:: set setup="MUI2_Limited\Setup_MUI2_Limited.exe" +:: set setup="NSIS_Full\Setup_NSIS_Full.exe" + set setup="UMUI_Full\Setup_UMUI_Ex_Full.exe" +:: set setup="UMUI_Full2\Setup_UMUI_Ex_Full2.exe" + +cd /D %0\..\%setup%\.. + +set loop=0 +set test=0 + +:Loop +echo Compile with: +echo MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS = 1 +echo MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = %loop% +echo MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT = %loop% +echo ... +pause > nul + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S NO INSTALLATION*** +echo (uninstall program compeletely) +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% +pause + +echo. +echo /allusers /uninstall +START "" /WAIT %setup% /allusers /uninstall +echo Result: %errorlevel% + +echo. +echo /allusers /uninstall /S +START "" /WAIT %setup% /allusers /uninstall /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S PER-USER INSTALLATION ONLY*** +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /uninstall +START "" /WAIT %setup% /currentuser /uninstall +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall /S +START "" /WAIT %setup% /currentuser /uninstall /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S PER-MACHINE INSTALLATION ONLY*** +echo (uninstall per-user version) +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE ARE BOTH PER-USER AND PER-MACHINE INSTALLATIONS*** +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + + +echo. +echo. +echo Compile with: +echo MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS = 0 +echo MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = %loop% +echo MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT = %loop% +echo ... +pause > nul + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE ARE BOTH PER-USER AND PER-MACHINE INSTALLATIONS*** +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall +START "" /WAIT %setup% /currentuser /uninstall +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall /S +START "" /WAIT %setup% /currentuser /uninstall /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S PER-MACHINE INSTALLATION ONLY*** +echo (uninstall per-user version) +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + +echo. +echo /allusers /uninstall +START "" /WAIT %setup% /allusers /uninstall +echo Result: %errorlevel% + +echo. +echo /allusers /uninstall /S +START "" /WAIT %setup% /allusers /uninstall /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S PER-USER INSTALLATION ONLY*** +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall +START "" /WAIT %setup% /currentuser /uninstall +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall /S +START "" /WAIT %setup% /currentuser /uninstall /S +echo Result: %errorlevel% + + +echo. +set /A test=test+1 +echo ***(%test%/16) THERE'S NO INSTALLATION*** +echo (uninstall per-user version) +echo ... +pause > nul + +echo. +echo no parameters +START "" /WAIT %setup% +echo Result: %errorlevel% + +echo. +echo /allusers +START "" /WAIT %setup% /allusers +echo Result: %errorlevel% + +echo. +echo /currentuser +START "" /WAIT %setup% /currentuser +echo Result: %errorlevel% + +echo. +echo /allusers /S +START "" /WAIT %setup% /allusers /S +echo Result: %errorlevel% +pause + +echo. +echo /currentuser /S +START "" /WAIT %setup% /currentuser /S +echo Result: %errorlevel% + +echo. +echo /allusers /uninstall +START "" /WAIT %setup% /allusers /uninstall +echo Result: %errorlevel% + +echo. +echo /allusers /uninstall /S +START "" /WAIT %setup% /allusers /uninstall /S +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall +START "" /WAIT %setup% /currentuser /uninstall +echo Result: %errorlevel% + +echo. +echo /currentuser /uninstall /S +START "" /WAIT %setup% /currentuser /uninstall /S +echo Result: %errorlevel% + + + + + +set /A loop=loop+1 +if %loop% LSS 2 goto Loop + + +echo Press a key to exit... +pause > nul \ No newline at end of file diff --git a/Documentation/screenshot1.png b/Documentation/screenshot1.png deleted file mode 100644 index c41e83d94d14c6943193ee1de64721e4b3b6d684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10416 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 AGynhq diff --git a/Documentation/screenshot2.png b/Documentation/screenshot2.png deleted file mode 100644 index e3cd2942aff0d27c8da41f11bab6ba2c5c8cc037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11283 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 diff --git a/Documentation/screenshot4.png b/Documentation/screenshot4.png deleted file mode 100644 index 4213715d968296c78ef2592ab8d87f199c349f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11569 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 diff --git a/Documentation/screenshot5.png b/Documentation/screenshot5.png deleted file mode 100644 index a4e989289791248c1f7a9117f13860719671ad69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10721 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 diff --git a/Documentation/screenshot6.png b/Documentation/screenshot6.png deleted file mode 100644 index 434470e6bc71d17eda525a4c4040583bcfd7ba15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12049 zcmdUVcT`i|wlAnCML@bz1!=+uh*CtVNIs-V?@dH%Xo3(R6j4ABlqN+&5fA}G0D;g# zkswkefRsQe0i+3pZU{Abo9~?S&K>uicgMTq-8;s6f9#QwJ@#IEtu^PG^Y{DB8E^DJ zn~|QIo{EZ!QRlvv2^AIfE^tNDo&oM4bRArPAL;-TZB43*e%=+}&pEfd26w5bJ|{68 zJJA6D>HO|n2T)Nlb(~(*UB0D{ft#0~f~=mJ`no=aIQhF!`8j#`JeBrwd3se&`i8WU z*R6;LR8-Q>b+qo91v{)ygOk%2kz!jF+1c3#Hyr!*b3c{cnsHU@8_6*(ag|uszu&L) zZs9Asr_)wLgH0zom?qu*TD-2tpzw3?Z69_HnX8va#Gi}5`eCvC&EOK~tE9xZ)VaI0 z1u*Lqa=t@FL>?)egxW;qpHN0C>amCFYtvB0p@cdb!u~)_{Z9J@fv_!>VdsZ60)j$? zR(>^XES<5i+&FQCDT0>P=blNz$;nCn`ZQ|36KN|DxlbHT@`_wq$zxV0tgQufX=#n5 z-c&q_IypjdPSvh9Zk~-uQs29s zRsZyfV!BPKn9V^6()7|GS8pV!aBtgRT5;qOA0J;?rFa2v<41k6>*nUBW6dwTITz*R zr40UX=~FR7NnXq0#EjZ)=bfJ(X_@v4yGfb)C~{x?QGHwE(YJR41KFvEst}y^?(%@P z6qp61+717eT8-?*Ju2H3Jg|EF#!8& z#`@3Lg4nr0RBL%_fCVV;iwU;YV#mwh>1-^4IMkvmJ_|bt=Rkl6nwd zJ7VUT<4pbf>j8&IZ_4Tga`kNLSpQKFWFm8&aguK@#>7!>IrlA5)Meb<18oWmF2S#b zddu(R>l%XhUukvN^beH>=Uenm&O6vr1D_k;TLNjHWa4g7mWR}Hn#iAHe2+sgv5W9A zeA|b$y)}x;8kb?;oxlU@q7BuRmtzs6BU8#+n_7Js5{0p94Lc|`E^79@)@}K=+H~QS z#j1#2M)!E%yIWj;SUoeM_bC2Sf3rCx#O6r2CxpK5MJ=B5Uh2g=-7WRYKRyrQTc914 zxW$mICVyg{X$csOnG<0BxXG;xTW~huOdvUPQ@{w073S($K zv#&D*Tda4pe_v$t6MUp&o!^8={QC=r|=ymhdcqz3)IY2k1@3@UlkH2;>(hZ}lq z-o+b9o{8Kvtd|a`XB0u5wdI*{$w+@ql+wF26OwuITtvE!>b?|>=FwWz6g-~Y>is@G zF1G1|7Xod>24!zmO}dDZxT+XC^CUG;Mxb>{#Inpjdkdc$uC65T5L*^rf2X`zKqFkj zH?dT8vAkcR-m|l681A@+o*}>-aW{PXBAWupGpbF$x(3wzd%mg9)H;z9E#2&^*Rf!% zz5hgjqJhmeOh5(|Oqe!(kh6{0lxds43$f+Kg<5%68?d*&daFrF=cqE;%24}4@DwLikABOFQL-vZlh9TZB>5TA06#$pR67n;h}B=JTL{! zZRh!1H`Q=r!v*QfC$LCz`}aucZGrorwb9;>*sS05aA6qaQYsCLJ7wr-*TW**W1P03 zQdj)a1?xXl1UfCZKwTz79o?ahrjvL6Xtu#WtF_ut7&xG=b=F!hA5~DsHrXNlE^urs z9_6V*UBi!1ZHM@JF8imW*)V}{aubb!>gU5WONa5}@BQJ*b-o9f-+ZKjNx$Lf^xUH5 zFo>NYq#lJy#>DvE?e0%it@fT&z}>6{6G$S2h#xYmff}A6tkza0(MR2}O(Nb1f_-wR z@BW_3O~R+g9=+PpXX2~1$H)AM-yU;;pZmTos`DLf)v4U_baHDJcs(MZAr&`a*S}is z54ZR-x%AhOArXnHPbYIT!%kj8@&cv<7%W=-DfeJYedI?oc^h2$Gja#zQUNlNq&cX9 z1B6^{`UVwAem*io6i>L9k?D1*@lpIN>}+bc5JQ_5hreeVIUNyA%~!K)<4pDa2UeH0 zSSR>&f}yBnX8JW-&6vt;;{7~7*KeC{T>F}n%ITcGeOM`QQ*$uTCT!f*8i^)tq;mXAm&e`4{rw zI+@np6-WK%`H|hdu%@nQ4K2B;?xDW9Snk3i>PQp1Ag`H-`FFW`{V4b87E%jkNN>~E zibU3viJT(#zJc;vLE9@i^TX$qmGMDEKni&@q=@>pvJ&#EAGO))ewa4qfFk2TFrOAu z%u2mVSbI)-y-bSC>hvWR7Gz!@Mw&@LZEAYD<;nCRazLeKZ>0jWrWk&>QgUn?79VG0 zhj$edDx8b^XBL|SZoFbtRAw>uYQV+EJ?g+b&|>HD2@)zC|Mv;6EU1P=B2j+TN^WP# z`j+X%$CZYBnjkn2`QeDjCyx#WU3k zI7K+}`<}ZQNlU$-3K242cjYR2kpB{ipV?&fypDf9Xps=R?eGH(x7?u%)JQNpC~?`& z>jmEvxe)hC99q*xaT@rL;M*xd@uIZf`gqdLX9VxH;j|7p39kHw9F;tXzVjaR>3Fz0 z*l-b9ka|`N#6Celso|jgzbC6O!~(}p11&3pirP}w!PZwTrTMZ^rDnel6J-|{>p%#v ztUw7n0hRbMdf2!oc#9R$Viz5+;U3cHZ7eA>GVvXhMH`JKiWVrmt;dx(1Z8e)Z$0@n zI43oU2XbSkrVWG{nO8m#u%HRHWoPa{!_&DYIFVJ2mT@_zw!w1D40`vZ=ws2b8C(+z zNNnLlar7YPNFD$wvfUIXRr%GXrc$mgpBx5xP^#RKYc)MGXPH%hZ$;CwB`Ga6$U1+s z51x~m2`AY@{tQeb>i7g8km6TDks9E}7k3@pCr9r5;qRF;Az|QEfYeo$lB{hWtSduu zrpGuKcuNMdD-UlTQ&*3np-xW_uj!&NA17o?PcuO$h64r zemc6eM=Yi+WtqeIcP&CzI}A(_A^FP_p2jYhIUNwEGYYi&5bKm;zRWIvQA(!P+Yjt^KSh1Y`i$f-jQnlw{k4Mi)Axmy59J#bP#xjzBY^dJ%v94{ZCsna`w{#U- z&WLF@As1ysf5-QPJ6eB!RLqy9xakQQ{Kd|n|eYqIeGgT7wCdgJGiAQ zuBN_UoVPkZzraN`ZJ;!xpE;cN;P5keBAz_k-2pnU2%T!cl|{Vr*&CK_zH$^gvf@+Y z_!|Y<<5}DF4PU4RXCUlq$St|kCrgG!t3IK>e`wolz4(1Wn_v1SaHvaff)r5^A`#Pk zK6mwA3*~Qo)JYRXmFk1XDn`Y6LO;McAOHc-?%`k5euJ1|sRiC9SCSk4LH z=Wh_Hjif~6;+jJe^pbc(h@+T&S4I9VeyGaM%COrkXi;$e?e*n({B_faDC(p9H~G*F zrRbl71@|oNWVQK2C76Zxp6ub$Obw@NF0r_X*Wv;Z-{;p!kZUWFdt+aJ`J{H4Tc(q| ze-Efrrtll8{pxMQn4UHbyQg$$=Qm0lBc@`jiE0n-tUN|^C0<$f;pwgL@FoKZ=CZc5pYGwa9%Z)t$dNz;~hO2nYEN=8KFY`V#TBWBy}V#yziam+$M)#S8-pq z{G_e^&SmAj4*;x+I4nDo`CL|=Q4~&?tY_|M!qxEKyyZC(U&pvo7Dikb5fQlQr3mf6 zC)x;XV}-775DH6-s+?lzJ*>7A82)%N^qL#rH&jgO;cC9X#QTeo;~8*q*>^9^Fo+Uj zk%ro6;)!n}RDUP3$CK*1k|?;{flB*&pOcl6e2)N?$7+E!z-EOMX(w%K;t1-8Kiosc zFU5zCi`6RO`B{uJ3SlSd2EHpcnJ<+k%e%*F_8-IysSsgep-tgOK^`rbh+l((iSg4Y z^(Ui)j#74V_XAE8nnZUr3ehtkWC}>KuHmbkq4;v6H(&J{g?zhFg9My0Gp_Io=(RWlMED|CEp*)B1EJnzR!Q4}eEC6*tCz#pqQBYR#W{Ni zlM@~=RkKdx8BOjDU9TV)MbycQ`|?f{o@=b$2`Z0U_g(XEE{5fPt)GX6hRQY0#q!90 zj8{pHZhrR@rb=`)NVY=M;7rZiXm;`iDHt=#s)fq{Cw@@`8J-q+lXvD;x>=7a#CY9n z;`gU|bZvSUomgUTWOvv$M*6A$R6|;Ex+<__FrZMNVpV>7; z{L%=Hwx|@p>h*-EIY}>^p?o>)e2nQ_=&qOeIZx<^P|QPSV`mI>I_uU>v%suRHwCC0Ywr^tgUOK zTOM~#8k+*$3*YYKy7TOvQ!S20Evf@9rL{^G?JSYQ%r=MYWqNtb$w9?f$s5~Zt&;^W zx4p`X{mNg!l+LryGMMx;?_7aXsRMycHkO$xZ>vj0RC9LV||oUD3A&*%h3;JjioPn z2CV-r2DGiE0}FiB6wJCLLF8o6erTH`AsqUc!5f54Vb4%ywV6zgMIHL=!7KABQFKW_ zbehWLQyLl@gKRXK5>^@(Ca*o*{ZZ7_ASdfRQJIWt1)$Q?akVMjRj9Dz5=zb~X)C$v zIRHeC2jspA+y(r(UeRYN+VlvF-|nK^Plez^+~&W%zKuvdxma&$8#h8t+hulpbJV?M z(ELSUaEvEwQgrvaN8?{RW3s4{H2780WOL^Y;o`y+=t=3OE0+j`>Qi_Fl(ojyeknIL zslUJMvNWWo(%~e!fBv(}ckqVS;309XWktVF6Ev3tHky{Q*P3O+6Zw?;k0QcpVD`ty%O&6nW=PONw@1lhuEljq znt%~lh-Tbq+~zT3H^(LV$-?usp`Ze<=V(z)TXr;7=pFa_fB2aOEL)OG#P020?W{-^ z%fu4!{3DNxkxkq-rHNvQrl>BOW}Qe<<56MZwqtQ?1q0wD= zs*Wf29&;;Pj$w2CadATcW~;_*Iv$*9ec0xEuOW)Yo;8PA-I3A?|bdKE`1NkG4iPg0&@Or=FCk1aGFuv$C+rn-pNArQ2Muw7TZ|MIFJ+M^MUb zhYW*d6?+1+k;)>4LqOV24TUo29<5FKHUx~e4(!id{ysc5)&`l08mkNU>l!MFc(Q`d z&w)xsurLa2oEIvzlbb1;4sV;p(_i^k?ZXzaIj2-a_X+|EZ*C9bY*g7!Mg2qb1Tf_0rIL?C$niM z7nmm0Uran~dC3$xRI^E3S6-CdrXi_ahg;(vwl`~!S0M>O5yxfFPxy|#(ttht?)W$f zY%PZW&~L1y4Mo0dof0$*+Pb}thEevrZ4T1=!gKDej8}7j?X|Sbaycgm1uq+xrvpH<1VZ*Dq(vPugr*!L& zzvRMyO||YP^FWK6^d2|(pQ@(S@&RlsXhZsEZ ztwY;*!Fk)Y_hid<{UtnhQ*5m)d5n0rvL|hf$Y-JqUv$mP|H#S8TXy4mLQ6|;NpB`) zfyS|^JB>X=!uR8p?W;aTll=$@=u0KYTq#~4m^k3L3AyhL-*c>)%rBRx#M_RERW=?& z;)aC;ViZj`q(DnNWfq%a%OQSdo6OCJ%atVM4|V1wOoiN!GlLSDu8EDJ9`^E9V#_Nu z?r=-?XBHmMO`|vmg)S_hiT5s`uK}@#+C65COe6DadXiOLZXT5DMZO|aTUiRBl zGkNPAbeC3^zq5*#Q(Hbf7h(C7IYucp(&UG=l2lwk{S#xpf@yKPMG4yXQh`4bvT`= z;{^G6u4DjDF&aai%g!o% z$ddD}DcTASvEou9iWVCwaM7mgvAK8f{$@uE3SZ=SK#gdz$$o(V1)B*|+a`?gNMWc8 zG!RZ!;;-TXweo0qws13Q*Z%*3^eaa${V|7hlqi+pstOK!H3qID*vlwXlEfkG1yRx99b7eroz= zw?6_XNzxb;+hS{Wy9~|Kp%pB}2*%(D{xJ&+lG1#kTt@IBs#(gqICwq1pSzsO8VGP zmBkU}K}UBL`LWL-tnz?o)~DEJ&ea#(5uPr$eKIy*+=wf)_@_<+`vzcD%17(XNWsos z?XAj|V?~HiugQ0e55&OgB}_a}u{bt4;PGP8oE-Su5{+X8waJW5|0FmUQn4TvwH9BR z2kfY+Ii)9`a`C|Tz`Jg607SD=)SG++o4lITpa5 zpH+2^GI&cSi^JS=FER~s##A9`-HgULy`=m;*<}Z1#%S$6eylO>2^^X_@n}YB1U;M3 zr$!r}ps0b#El-A&J5+O7^vl53BdR;*^s~4O%~IxW7*B-8v`9>Hs?c}Iebz4RxF*BZ z$yO!LGHNIcQ~k?F9gM|c2|wc(G0`1Pg#-=27LP{@t7RGD`Ei=IDS^T<#e(!gpXx6w zDBpjLWdIKJOUqKx&&}`rZtK70qpiFe==tlD7S_03_8-_NQI|2kl;5)%7jts1zjEE& zWm*V*P<@`@fqm=}F9v?!ym}d4ii(Q<{{EsQwa~9|EdJ>>tPq8`{9rTRW2HZ3J(gTIS61Eug`ThRY?c*v zjR5_};~g4xrQ#Q+r>A}1#Krag=)>lNuJvkHUoV z>;-m^2EPjA^g7&GmgXHjy5{*a>9X+&5E2b@?*w+f;;3%71Yj_-plWKdwx))y<8Va` zln^GNu;x8J=A9xyUrN9%OvMz1MkXE}6C(r*|MZ-2RbMSF3Jnc?{NnrAicb-9s@4ur z(n{i08Zr<=8){yED+>61JD7%bE;Q|#sDtc{JG6~{;d^Pch_rUz0RdXEnfu_Y@DQP@goXKF4P~Gklp1^YL z&xZw)I>MXl>*;4Y_NRsizEoYpCzgr=X9yImmsNV~WbCgIllE{^!oRY+N%aqZQIN%% zP|tg`Y#Kg5R_eSUH-gs83e}R+XFRIJ8Pm%2z0)!HgO_@uT=KDqMBq4sl!2co?nXKB z6?#4f5E|nx7xZ6^eARq@?K?x7^#z1Ox_980(}2&)ZR4aVHzn^~0|^QOY-*ygKcA$& zp>X)#9B!c_U9xvX5L~!?$p)%Dryue2^VvC$YS#2XVIZ8_+kZMyhsu~Ub0%$n5)flVQPazDNRT+YRinHu@fb`#>vwE zGM>IG?$J;!M%r~CPZhE;RX#HyUE(8sFtw|8GB|Mq&N=k_Z(+;j9->C`RIiNoej;J# zxL;;;l||vo?FYhQ_ZnWbUmMF(Kwi$e9BtR2=EP>p;B6f2m6xdOPV^L6eslVQdX~Fj zGQ$|ml!uiOf|()!UVi9i1lhz-PfkjXtx_&ZsDr>25$YcdC@(wnrPzyIeS&`JlJQw7 z*R~WSJeUhy5f9@(m@9uw{Paiw9k1v$Aus!=oJn|?s}T1_ zb{($dL2lEdPWt-J;cgE%w-VR`cDn=-l1&F^eydSC#33VR*<<{|eJwwl21`v|Rf$(QnuTP9Kl)21J3i`@Xe;?msz#hES4g_rdIV`wXUE ziJWHwvz{U1OQ*kX$t&B;iOf+&*K1L~k=Jm+Y=5={M4LeAGpyz>V@fm3dzuGTs* z&6b*)fW_W)pM;VW)1&Y`KXVs^f&rSE);Fp=q@cj^1JestdS9-xfn;@~jq5DPl8@e} zfj6E_Y>!B61gX7U@LxT_XN_PuV#}N@uo}Urp+QMP6~q~vf)&@rbBG!(yp5YM9acbP zsY3SvbJRqrqjH**?s0N9sCnnQ%vuiHTB9VAcD@T`b?46qnR z!0r$TWG(;hbPE)6YH;wrn-Q#aHk)`JNFft;w-lA1ibVSMbpwu^cv*0ao7^HRZ|ApT zRyOsdPUseLbl+0A&|>%)a9Ay5=YOBu{+B1b|DZVaf00K2A03rAO#u2SDm-r?cBAHV z?I)|i*Bo8Gwsg-+Yd2`b1b!p^NPn$L??N4LtjuZGogG*h0}FZ=^@ zO1~ss9FpK-tfo8v1@wB+0eXqGB}0Ug5#?sspf)FBGifAj`X<2>qgF$bAVQ5lrA1qKk=v(V;wJesg z^99` z%9->lu`>EM*K<=eJ)Ubu2Sx~eFn5Q_g`6q9VS;Wv1* zc%nHQyLHQN6j)&UDsh5f{QT>XG<+GHbuLBmD*BupiC$SiR0w=k(l9-c;oksm9dkeZ z75&>eM6=Qa;o00+nqWkgVrv-E{v9-oxtI7(KK|71Jh* z939LH)fPh574$YK@-n$y%^CRHoPPlry%t1$o3%n9`keNef<-3Qzti`S+O6obbw&=) zxeKavvWlo`fe0>79gVIlrAC}mjQ3UX0HwLln9ijOm%B^t-eMH(JR6!uTiZ>o^nP?o z@(UOgeC;3pl31MLwZfrs#u+on2G1T#IC6L-twq(6Pmjn$`m;?0A7CBqUC2lM&|KWBg@ zul2w6d%eaJ_7zdCCr9?}mNGkg*+)_0A!p^om@$Wbo<~h(1K4ur*QM7z8*%GmhE^}f zs@a=GBFnqsnPGxQ!XhuhBE%R^^6G)1RU32N{;kQLa#SxS{^xK5hN*Ooq?AGF139$J zLM3<1eXB*M1*er2|}WT!FVrhx}p7#^q&=YqaXnge3Y@Zg4M+(ct3`X{2T2coT(x)RFwA zfWzS@2fhqooVEr8mQ@>(j9fZHkmr5&{L2c^%Mv+fY+626YtKnpTe?j8U0oglkR`(J zqQ4JIs$^|WBYHT<4?Ju4Uik1Mp8$4FPJr5H`Zd%4fT06AQssw8`odW&^3 z6oP{TH1}MyX=V4jTC}YAT1L)S$!1e0aLRCOpff8A(@WhsIfI!7~m-yLRiQU9W*bhAaYlzRgD#g+R8evAyjOt^)qM`)=V{aSRQ zGl3v6ehHcRY{?yT^X3<<))V-NtH8#mgX7B4jajBo7s#b1N3*Vm#@qC>uD;gCg2i>{ z|3C7suGgM2YX#i|Z`L_3pts{5AhiR)O~<>YJJHTXUl5Qt&x^O3VKo^6CkX^oN5#TZ&d;5JDM zpGvf}en{5hjJr8ta*@8P&s^?}WCw$8$7?S3{Tj`i$cQWD0}AG*4BqBhv^=4Tp`g_d zBPQ>$@Z2A0e!5B;y7;(Qq+g9SQ0dliVk=wBZn|SH-;L7qG-wubyD9d=rotfsE^<~& zt0Q;P-J^G$FzY>3?v{CNQN-lCy~(UY4D zC{M@AeS5M{1vFY!f773@1B==-e_R8}*-f=y<8!MRMdB%6$1d>0DM>y-);d9w95Y6p zVtSriu7+xlx(G1e=fHdJMx10Y6l6xJ{cAhA zT`6!nJ%Y{V?e!2}gm1$-Pf*R;sHBE1`24n5t^=W#!5!#RW#I7PpSJ8A z^QVgeDI7T_Il7O9b`9j$gYEeT@LQN;j1S2So06*|a#qCc{R+(9>C2m#cyT2o>c3Xu zUt!z>C0^s)sD`%&3FTPq|lh0^+q) zvqC!WVooe~9S*er&FlFcbrz8e5?@a3{>tl=v;blOxp%ki1z?AL^;H|nq;pAc$_e;< zvq-U&=U=5{*uAW`Bi$J3tvW&Zc8=NyOcx#_#U%i#>~x5rs71AaA&8o7p4Xmf6B&~v zKymEKnMV*gf6QX=r$=DIvK=E`HD#!@UCPMNx^3yaNzUAStz*Boj~<@y=Z=Bd16^jw z%AYWMuj!^yvVGD}(+kcHjPzfxTEqA_MeK%C|L)aj*2JATHMB_s4(P^sH1FM!#lLaw z50Jvca^Tp|{~xum{Rb?e0n>ll@7=Dgl7zFRs7JC4)n-nlJOet`sdPXOv???oKK~y% CLr6pb diff --git a/Documentation/screenshot7.png b/Documentation/screenshot7.png deleted file mode 100644 index f0bd3e903270d05fe286400b08febe75b9f8464b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58819 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 BU#0*6 diff --git a/Include/NsisMultiUser.nsh b/Include/NsisMultiUser.nsh index 7835bc2..5f6f00c 100644 --- a/Include/NsisMultiUser.nsh +++ b/Include/NsisMultiUser.nsh @@ -1,25 +1,17 @@ -/* -SimpleMultiUser.nsh - Installer/Uninstaller that allows installations "per-user" (no admin required) or "per-machine" (asks elevation *only when necessary*) -By Ricardo Drizin (contact at http://drizin.com.br) -This plugin is based on [MultiUser.nsh (by Joost Verburg)](http://nsis.sourceforge.net/Docs/MultiUser/Readme.html) but with some new features and some simplifications: -- Installer allows installations "per-user" (no admin required) or "per-machine" (as original) -- If running user IS part of Administrators group, he is not forced to elevate (only if necessary - for per-machine install) -- If running user is NOT part of Administrators group, he is still able to elevate and install per-machine (I expect that power-users will have administrator password, but will not be part of the administrators group) -- UAC Elevation happens only when necessary (when per-machine is selected), not in the start of the installer -- Uninstaller block is mandatory (why shouldn't it be?) -- If there are both per-user and per-machine installations, user can choose which one to remove during uninstall -- Correctly creates and removes shortcuts and registry (per-user and per-machine are totally independent) -- Fills uninstall information in registry like Icon and Estimated Size. -- If running as non-elevated user, the "per-machine" install can be allowed (automatically invoking UAC elevation) or can be disabled (suggesting to run again as elevated user) -- If elevation is invoked for per-machine install, the calling process automatically hides itself, and the elevated inner process automatically skips the choice screen (cause in this case we know that per-machine installation was chosen) -- If uninstalling from the "add/remove programs", automatically detects if user is trying to remove per-machine or per-user install +/* + +NsisMultiUser.nsh - NSIS plugin that allows "per-user" (no admin required) and "per-machine" (asks elevation *only when necessary*) installations + +Full source code, documentation and demos at https://github.com/Drizin/NsisMultiUser/ + +Copyright 2016-2017 Ricardo Drizin, Alex Mitev + */ !verbose push !verbose 3 -;Standard NSIS header files -!include MUI2.nsh +; Standard NSIS header files !include nsDialogs.nsh !include LogicLib.nsh !include WinVer.nsh @@ -30,58 +22,49 @@ RequestExecutionLevel user ; will ask elevation only if necessary ; exit and error codes !define MULTIUSER_ERROR_INVALID_PARAMETERS 666660 ; invalid command-line parameters -!define MULTIUSER_ERROR_ELEVATION_NOT_ALLOWED 666661 ; elevation is restricted by MULTIUSER_INSTALLMODE_ALLOW_ELEVATION and MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT +!define MULTIUSER_ERROR_ELEVATION_NOT_ALLOWED 666661 ; elevation is restricted by MULTIUSER_INSTALLMODE_ALLOW_ELEVATION or MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT !define MULTIUSER_ERROR_NOT_INSTALLED 666662 ; returned from uninstaller when no version is installed !define MULTIUSER_ERROR_ELEVATION_FAILED 666666 ; returned by the outer instance when the inner instance cannot start (user aborted elevation dialog, Logon service not running, UAC is not supported by the OS, user without admin priv. is used in the runas dialog), or started, but was not admin !define MULTIUSER_INNER_INSTANCE_BACK 666667 ; returned by the inner instance when the user presses the Back button on the first visible page (display outer instance) -;Macros for compile-time defines -!ifmacrondef MUI_DEFAULT - !macro MUI_DEFAULT SYMBOL CONTENT - ;Define symbol if not yet defined - ;For setting default values - !ifndef "${SYMBOL}" - !define "${SYMBOL}" "${CONTENT}" - !endif - !macroend -!endif - !macro MULTIUSER_INIT_VARS ; required defines - !ifndef PRODUCT_NAME | VERSION | PROGEXE | COMPANY_NAME - !error "Should define all variables: PRODUCT_NAME, VERSION, PROGEXE, COMPANY_NAME" + !ifndef PRODUCT_NAME | VERSION | PROGEXE + !error "Should define all variables: PRODUCT_NAME, VERSION, PROGEXE" !endif ; optional defines - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 ; 0 (false) or 1 (true), allow UAC screens in the (un)installer - if set to 0 and user is not admin, per-machine radiobutton will be disabled, or if elevation is required, (un)installer will exit with an error code (and message if not silent) - !if "${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION}" == "" ; old code - just defined with no value, change to this code now: !define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 0 + ; COMPANY_NAME - stored in uninstall info in registry + ; MULTIUSER_INSTALLMODE_NO_HELP_DIALOG - don't show help dialog + + !define /ifndef MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 1 ; 0 or 1 - whether user can install BOTH per-user and per-machine; this only affects the texts and the required elevation on the page, the actual uninstall of previous version has to be implemented by script + !define /ifndef MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 ; 0 or 1, allow UAC screens in the (un)installer - if set to 0 and user is not admin, per-machine radiobutton will be disabled, or if elevation is always required, (un)installer will exit with an error code (and message if not silent) + !if "${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION}" == "" ; old code - just defined with no value, equivalent to 1 !define /redef MULTIUSER_INSTALLMODE_ALLOW_ELEVATION 1 !endif - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 ; 0 (false) or 1 (true), (only available if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 1) allow UAC screens in the (un)installer in silent mode; if set to 0 and user is not admin and elevation is required, (un)installer will exit with an error code + !define /ifndef MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT 0 ; 0 or 1, (only available if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 1) allow UAC screens in the (un)installer in silent mode; if set to 0 and user is not admin and elevation is always required, (un)installer will exit with an error code !if "${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION}" == 0 !if "${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT}" == 1 !error "MULTIUSER_INSTALLMODE_ALLOW_ELEVATION_IF_SILENT can be set only when MULTIUSER_INSTALLMODE_ALLOW_ELEVATION is set!" !endif - !endif - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS 1 ; 0 (false) or 1 (true) - whether user can install BOTH per-user and per-machine; this only affects the texts (and shield) on the page, and the required elevation, the actual uninstall of previous version has to be implemented by script - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 0 ; 0 (false) or 1 (true), (only available if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 1 or running elevated and there are 0 or 2 installations on the system) when running as user and is set to 1, per-machine installation is pre-selected, otherwise per-user installation - !if "${MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS}" == "" ; old code - just defined with no value, change to this code now: !define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 0 + !endif + !define /ifndef MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 0 ; 0 or 1, (only available if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 1 and there are 0 or 2 installations on the system) when running as user and is set to 1, per-machine installation is pre-selected, otherwise per-user installation + !if "${MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS}" == "" ; old code - just defined with no value, equivalent to 1 !define /redef MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS 1 !endif - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER 0 ; 0 (false) or 1 (true), (only available if there are 0 or 2 installations on the system) when running as admin and is set to 1, per-user installation is pre-selected, otherwise per-machine installation - !if "${MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER}" == "" ; old code - just defined with no value, change to this code now: !define MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER 0 + !define /ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER 0 ; 0 or 1, (only available if there are 0 or 2 installations on the system) when running as admin and is set to 1, per-user installation is pre-selected, otherwise per-machine installation + !if "${MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER}" == "" ; old code - just defined with no value, equivalent to 1 !define /redef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER 1 !endif - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_PROGRAMFILES $PROGRAMFILES ; set to "$PROGRAMFILES64" for 64-bit installers - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_INSTDIR "${PRODUCT_NAME}" ; suggested name of directory to install (under $MULTIUSER_INSTALLMODE_PROGRAMFILES or $LOCALAPPDATA) - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY "${PRODUCT_NAME}" ; registry key for UNINSTALL info, placed under [HKLM|HKCU]\Software\Microsoft\Windows\CurrentVersion\Uninstall (can be ${PRODUCT_NAME} or some {GUID}) - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY "Microsoft\Windows\CurrentVersion\Uninstall\${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY}" ; registry key where InstallLocation is stored, placed under [HKLM|HKCU]\Software (can be ${PRODUCT_NAME} or some {GUID}) + !define /ifndef MULTIUSER_INSTALLMODE_64_BIT 0 ; set to 1 for 64-bit installers + !define /ifndef MULTIUSER_INSTALLMODE_INSTDIR "${PRODUCT_NAME}" ; suggested name of directory to install (under $PROGRAMFILES32/$PROGRAMFILES64 or $LOCALAPPDATA) + !define /ifndef MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY "${PRODUCT_NAME}" ; registry key for UNINSTALL info, placed under [HKLM|HKCU]\Software\Microsoft\Windows\CurrentVersion\Uninstall (can be ${PRODUCT_NAME} or some {GUID}) + !define /ifndef MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY "Microsoft\Windows\CurrentVersion\Uninstall\${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY}" ; registry key where InstallLocation is stored, placed under [HKLM|HKCU]\Software (can be ${PRODUCT_NAME} or some {GUID}) !define MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY}" ; full path to registry key storing uninstall information displayed in Windows installed programs list !define MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY2 "Software\${MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY}" ; full path to registry key where InstallLocation is stored - !insertmacro MUI_DEFAULT UNINSTALL_FILENAME "uninstall.exe" ; name of uninstaller - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "UninstallString" ; do not change this value - doing so will make the program disappear from the Windows installed programs list - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION}" ; display name in Windows uninstall list of programs - !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "InstallLocation" ; name of the registry value containing install directory + !define /ifndef UNINSTALL_FILENAME "uninstall.exe" ; name of uninstaller + !define /ifndef MULTIUSER_INSTALLMODE_DISPLAYNAME "${PRODUCT_NAME} ${VERSION}" ; display name in Windows uninstall list of programs + !define /ifndef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "InstallLocation" ; name of the registry value containing install directory !ifdef MULTIUSER_INSTALLMODE_FUNCTION !define MULTIUSER_INSTALLMODE_CHANGE_MODE_FUNCTION ${MULTIUSER_INSTALLMODE_FUNCTION} ; old code - changed function name @@ -90,16 +73,20 @@ RequestExecutionLevel user ; will ask elevation only if necessary ; Variables Var MultiUser.Privileges ; Current user level: "Admin", "Power" (up to Windows XP), or else regular user. Var MultiUser.InstallMode ; Current Install Mode ("AllUsers" or "CurrentUser") - Var IsAdmin ; 0 (false) or 1 (true) - Var HasPerMachineInstallation ; 0 (false) or 1 (true) - Var HasPerUserInstallation ; 0 (false) or 1 (true) - Var PerMachineInstallationFolder - Var PerUserInstallationFolder + Var IsAdmin ; 0 or 1, initialized via UserInfo::GetAccountType + Var IsInnerInstance ; 0 or 1, initialized via UAC_IsInnerInstance + Var HasPerMachineInstallation ; 0 or 1 + Var HasPerUserInstallation ; 0 or 1 + Var HasCurrentModeInstallation ; 0 or 1 Var PerMachineInstallationVersion ; contains version number of empty string "" - Var PerUserInstallationVersion ; contains version number of empty string "" - Var HasTwoAvailableOptions ; 0 (false) or 1 (true): 0 means only per-user radio button is enabled on page, 1 means both; will be 0 only when MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 0 and user is not admin - Var InstallHidePagesBeforeComponents ; 0 (false) or 1 (true), use it to hide all pages before Components inside the installer when running as inner instance - Var UninstallHideBackButton ; 0 (false) or 1 (true), use it to hide the Back button on the first visible page of the uninstaller + Var PerUserInstallationVersion ; contains version number of empty string "" + Var PerMachineInstallationFolder + Var PerUserInstallationFolder + Var PerMachineUninstallString + Var PerUserUninstallString + Var PerMachineOptionAvailable ; 0 or 1: 0 means only per-user radio button is enabled on page, 1 means both; will be 0 only when MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 0 and user is not admin + Var InstallShowPagesBeforeComponents ; 0 or 1, when 0, use it to hide all pages before Components inside the installer when running as inner instance + Var UninstallShowBackButton ; 0 or 1, use it to show/hide the Back button on the first visible page of the uninstaller Var DisplayDialog ; (internal) Var PreFunctionCalled ; (internal) Var CmdLineInstallMode ; contains command-line install mode set via /allusers and /currentusers parameters @@ -110,9 +97,9 @@ RequestExecutionLevel user ; will ask elevation only if necessary Var MultiUser.InstallModePage.Text Var MultiUser.InstallModePage.AllUsers Var MultiUser.InstallModePage.CurrentUser - Var MultiUser.RadioButtonLabel1 - ;Var MultiUser.RadioButtonLabel2 - ;Var MultiUser.RadioButtonLabel3 + Var MultiUser.InstallModePage.AllUsersLabel + Var MultiUser.InstallModePage.CurrentUserLabel + Var MultiUser.InstallModePage.Description !macroend !macro MULTIUSER_UNINIT_VARS @@ -128,15 +115,21 @@ RequestExecutionLevel user ; will ask elevation only if necessary !endif !define MULTIUSER_${UNINSTALLER_PREFIX}PAGE_INSTALLMODE - !insertmacro MUI_${UNINSTALLER_PREFIX}PAGE_INIT + !ifmacrodef MUI_${UNINSTALLER_PREFIX}PAGE_INIT + !insertmacro MUI_${UNINSTALLER_PREFIX}PAGE_INIT + !endif !insertmacro MULTIUSER_${UNINSTALLER_PREFIX}INIT_VARS - + !insertmacro MULTIUSER_FUNCTION_INSTALLMODEPAGE "${UNINSTALLER_PREFIX}" "${UNINSTALLER_FUNCPREFIX}" PageEx ${UNINSTALLER_FUNCPREFIX}custom PageCallbacks ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModePre ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeLeave PageExEnd + + !ifmacrodef MUI_${UNINSTALLER_PREFIX}PAGE_END + !insertmacro MUI_${UNINSTALLER_PREFIX}PAGE_END ; MUI 1 MUI_UNPAGE_END macro + !endif !macroend !macro MULTIUSER_PAGE_INSTALLMODE ; create install page - called by user script @@ -183,6 +176,8 @@ RequestExecutionLevel user ; will ask elevation only if necessary StrCpy $MultiUser.InstallMode "AllUsers" SetShellVarContext all + + StrCpy $HasCurrentModeInstallation "$HasPerMachineInstallation" ${if} $CmdLineDir != "" StrCpy $INSTDIR $CmdLineDir @@ -190,8 +185,12 @@ RequestExecutionLevel user ; will ask elevation only if necessary StrCpy $INSTDIR $PerMachineInstallationFolder ${else} !if "${UNINSTALLER_FUNCPREFIX}" == "" - ;Set default installation location for installer - StrCpy $INSTDIR "${MULTIUSER_INSTALLMODE_PROGRAMFILES}\${MULTIUSER_INSTALLMODE_INSTDIR}" + ; Set default installation location for installer + ${if} ${MULTIUSER_INSTALLMODE_64_BIT} == 0 + StrCpy $INSTDIR "$PROGRAMFILES32\${MULTIUSER_INSTALLMODE_INSTDIR}" + ${else} + StrCpy $INSTDIR "$PROGRAMFILES64\${MULTIUSER_INSTALLMODE_INSTDIR}" + ${endif} !endif ${endif} @@ -209,17 +208,19 @@ RequestExecutionLevel user ; will ask elevation only if necessary SetShellVarContext current + StrCpy $HasCurrentModeInstallation "$HasPerUserInstallation" + ${if} $CmdLineDir != "" StrCpy $INSTDIR $CmdLineDir ${elseif} $PerUserInstallationFolder != "" StrCpy $INSTDIR $PerUserInstallationFolder ${else} !if "${UNINSTALLER_FUNCPREFIX}" == "" - ;Set default installation location for installer + ; Set default installation location for installer ${if} ${AtLeastWin2000} StrCpy $INSTDIR "$LOCALAPPDATA\${MULTIUSER_INSTALLMODE_INSTDIR}" - ${else} - StrCpy $INSTDIR "${MULTIUSER_INSTALLMODE_PROGRAMFILES}\${MULTIUSER_INSTALLMODE_INSTDIR}" + ${else} + StrCpy $INSTDIR "$PROGRAMFILES32\${MULTIUSER_INSTALLMODE_INSTDIR}" ; there's no 64-bit of Windows before 2000 (i.e. NT4) ${endif} !endif ${endif} @@ -239,25 +240,23 @@ RequestExecutionLevel user ; will ask elevation only if necessary !endif !endif - Function ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckElevationRequired - ; check if elevation is always required, return result in $0 + Function ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckPageElevationRequired + ; check if elevation on page is always required, return result in $0 + ; when this function is called from InitChecks, InstallMode is "" + ; and when called from InstallModeLeave/SetShieldsAndTexts, InstallMode is not empty StrCpy $0 0 ${if} $IsAdmin == 0 - !if "${UNINSTALLER_FUNCPREFIX}" == "" ; installer - !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 - ${if} $HasPerMachineInstallation == 1 - ${andif} $HasPerUserInstallation == 0 - ; has to uninstall the per-machine istalattion, which requires admin rights - StrCpy $0 1 - ${endif} - !endif - !else ; uninstaller - ${if} $HasPerMachineInstallation == 1 - ${andif} $HasPerUserInstallation == 0 - ; there is only per-machine istalattion, which requires admin rights - StrCpy $0 1 - ${endif} - !endif + ${if} $MultiUser.InstallMode == "AllUsers" + StrCpy $0 1 + ${else} + !if "${UNINSTALLER_FUNCPREFIX}" == "" ; installer + !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 + ${if} $HasPerMachineInstallation$HasPerUserInstallation == "10" + StrCpy $0 1 ; has to uninstall the per-machine istalattion, which requires admin rights + ${endif} + !endif + !endif + ${endif} ${endif} FunctionEnd @@ -297,125 +296,107 @@ RequestExecutionLevel user ; will ask elevation only if necessary FunctionEnd Function ${UNINSTALLER_FUNCPREFIX}MultiUser.InitChecks - ;Installer initialization - check privileges and set default install mode + ; Installer initialization - check privileges and set default install mode StrCpy $MultiUser.InstallMode "" - StrCpy $HasTwoAvailableOptions 1 - StrCpy $InstallHidePagesBeforeComponents 0 - StrCpy $UninstallHideBackButton 1 + StrCpy $PerMachineOptionAvailable 1 + StrCpy $InstallShowPagesBeforeComponents 1 StrCpy $DisplayDialog 1 StrCpy $PreFunctionCalled 0 StrCpy $CmdLineInstallMode "" StrCpy $CmdLineDir "" - ; check in the inner instance has admin rights - ${if} ${UAC_IsInnerInstance} - ${andifnot} ${UAC_IsAdmin} - SetErrorLevel ${MULTIUSER_ERROR_ELEVATION_FAILED} ;special return value for outer instance so it knows we did not have admin rights - Quit - ${endif} - + !if ${MULTIUSER_INSTALLMODE_64_BIT} == 0 + SetRegView 32 ; someday, when NSIS is 64-bit... + !else + SetRegView 64 + !endif + UserInfo::GetAccountType Pop $MultiUser.Privileges ${if} $MultiUser.Privileges == "Admin" - ${orif} $MultiUser.Privileges == "Power" + ${orif} $MultiUser.Privileges == "Power" ; under XP (and earlier?), Power users can install programs, but UAC_IsAdmin returns false StrCpy $IsAdmin 1 ${else} StrCpy $IsAdmin 0 - ${endif} - - ; Checks registry for previous installation path (both for upgrading, reinstall, or uninstall) - StrCpy $HasPerMachineInstallation 0 - StrCpy $HasPerUserInstallation 0 - ;Set installation mode to setting from a previous installation - ReadRegStr $PerMachineInstallationFolder HKLM "${MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ; "InstallLocation" + ${endif} + + ${if} ${UAC_IsInnerInstance} + StrCpy $IsInnerInstance 1 + ${else} + StrCpy $IsInnerInstance 0 + ${endif} + + ; initialize PerXXXInstallationVersion, PerXXXInstallationFolder, PerXXXUninstallString variables ReadRegStr $PerMachineInstallationVersion HKLM "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayVersion" - ${if} $PerMachineInstallationFolder != "" + ReadRegStr $PerMachineInstallationFolder HKLM "${MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ; "InstallLocation" + ReadRegStr $PerMachineUninstallString HKLM "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "UninstallString" ; contains the /currentuser or /allusers parameter + ${if} $PerMachineInstallationFolder == "" + StrCpy $HasPerMachineInstallation 0 + ${else} StrCpy $HasPerMachineInstallation 1 - ${endif} - ReadRegStr $PerUserInstallationFolder HKCU "${MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ; "InstallLocation" + ${endif} ReadRegStr $PerUserInstallationVersion HKCU "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayVersion" - ${if} $PerUserInstallationFolder != "" + ReadRegStr $PerUserInstallationFolder HKCU "${MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" ; "InstallLocation" + ReadRegStr $PerUserUninstallString HKCU "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "UninstallString" ; contains the /currentuser or /allusers parameter + ${if} $PerUserInstallationFolder == "" + StrCpy $HasPerUserInstallation 0 + ${else} StrCpy $HasPerUserInstallation 1 ${endif} - ; initialize CmdLineInstallMode and CmdLineDir, needed also if we are the inner instance (UAC passes all parameters from the outer instance) + ; get all parameters ${GetParameters} $R0 - ${GetOptions} $R0 "/?" $R1 - ${ifnot} ${errors} - MessageBox MB_ICONINFORMATION "Usage:$\r$\n$\r$\n\ - /allusers$\t- (un)install for all users (case-insensitive)$\r$\n\ - /currentuser - (un)install for current user only (case-insensitive)$\r$\n\ - /S$\t- silent mode (case-sensitive)$\r$\n\ - /D$\t- set install directory, must be last paramter, without quotes (case-sensitive)$\r$\n\ - /?$\t- display this message$\r$\n$\r$\n\ - Return codes (DEC):$\r$\n$\r$\n\ - 0$\t- normal execution (no error)$\r$\n\ - 1$\t- installation aborted by user (cancel button)$\r$\n\ - 2$\t- installation aborted by script$\r$\n\ - 666660$\t- invalid command-line parameters$\r$\n\ - 666661$\t- elevation is not allowed by defines$\r$\n\ - 666662$\t- uninstaller detects there's no installed version$\r$\n\ - 666666$\t- cannot start elevated instance$\r$\n\ - other$\t- Win32 error code when trying to start elevated instance" - SetErrorLevel 0 - Quit - ${endif} + + ; initialize CmdLineInstallMode and CmdLineDir, needed also if we are the inner instance (UAC passes all parameters from the outer instance) + ; note: the loading of the /D parameter depends on AllowRootDirInstall, see https://sourceforge.net/p/nsis/bugs/1176/ ${GetOptions} $R0 "/allusers" $R1 ${ifnot} ${errors} StrCpy $CmdLineInstallMode "AllUsers" ${endif} + ${GetOptions} $R0 "/currentuser" $R1 ${ifnot} ${errors} - ${if} $CmdLineInstallMode == "AllUsers" - MessageBox MB_ICONSTOP "Provide only on of the /allusers or /currentuser parameters." /SD IDOK + ${if} $CmdLineInstallMode != "" + MessageBox MB_ICONSTOP "Provide only one of the /allusers or /currentuser parameters." /SD IDOK SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} Quit ${endif} StrCpy $CmdLineInstallMode "CurrentUser" ${endif} + !if "${UNINSTALLER_FUNCPREFIX}" == "" ${if} "$INSTDIR" != "" ; if $INSTDIR is not empty here in the installer, it's initialized with the value of the /D command-line parameter StrCpy $CmdLineDir "$INSTDIR" ${endif} !endif - ; initialize $InstallHidePagesBeforeComponents and $UninstallHideBackButton + ; initialize $InstallShowPagesBeforeComponents and $UninstallShowBackButton !if "${UNINSTALLER_FUNCPREFIX}" == "" - ${if} ${UAC_IsInnerInstance} - ${andif} $CmdLineInstallMode == "" - StrCpy $InstallHidePagesBeforeComponents 1 ; make sure we hide pages only if outer instance showed them, i.e. installer was elevated by dialog in outer instance (not by param in the beginning) (see when MultiUser.Elevate is called) + ${if} $IsInnerInstance == 1 + StrCpy $InstallShowPagesBeforeComponents 0 ; we hide pages only if we're the inner instance (the outer instance always shows them) ${endif} !else ${if} $CmdLineInstallMode == "" - ${andif} $HasPerUserInstallation == 1 - ${andif} $HasPerMachineInstallation == 1 - StrCpy $UninstallHideBackButton 0 ; make sure we show Back button only if dialog was displayed, i.e. uninstaller did not elevate in the beginning (see when MultiUser.Elevate is called) + ${andif} $HasPerMachineInstallation$HasPerUserInstallation == "11" + StrCpy $UninstallShowBackButton 1 ; make sure we show Back button only if dialog was displayed, i.e. uninstaller did not elevate in the beginning (see when MultiUser.Elevate is called) + ${else} + StrCpy $UninstallShowBackButton 0 ${endif} !endif - - ; check for limitations - ${if} ${silent} - ${andif} $CmdLineInstallMode == "" - SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} ; one of the /allusers or /currentuser parameters is required in silent mode - Quit - ${endif} - - !if "${UNINSTALLER_FUNCPREFIX}" != "" - ${if} $HasPerMachineInstallation == 0 - ${andif} $HasPerUserInstallation == 0 - MessageBox MB_ICONSTOP "There's no installed version of ${PRODUCT_NAME}." /SD IDOK - SetErrorLevel ${MULTIUSER_ERROR_NOT_INSTALLED} + + ${if} $IsInnerInstance == 1 + ; check if the inner instance has admin rights + ${if} $IsAdmin == 0 + SetErrorLevel ${MULTIUSER_ERROR_ELEVATION_FAILED} ; special return value for outer instance so it knows we did not have admin rights Quit - ${endif} - !endif - - ${If} ${UAC_IsInnerInstance} + ${endif} + !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 !if "${UNINSTALLER_FUNCPREFIX}" == "" !insertmacro UAC_AsUser_Call Function ${UNINSTALLER_FUNCPREFIX}MultiUser.GetInstallMode ${UAC_SYNCREGISTERS} ${if} $0 == "CurrentUser" ; the inner instance was elevated because there is installation per-machine, which needs to be removed and requires admin rights, - ; but the user selected per-user installation in the outer instance, so set context to CurrentUser + ; but the user selected per-user installation in the outer instance, set context to CurrentUser Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser StrCpy $DisplayDialog 0 Return @@ -426,119 +407,222 @@ RequestExecutionLevel user ; will ask elevation only if necessary Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers ; Inner Process (and Admin) - set to AllUsers StrCpy $DisplayDialog 0 Return - ${endif} - - ; check if elevation is always required - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckElevationRequired - ${if} $0 == 1 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckElevationAllowed ${endif} - ; process command-line parameters (both silent and non-silent mode, installer and uninstaller) - ${if} $CmdLineInstallMode != "" - ${if} $CmdLineInstallMode == "AllUsers" - !if "${UNINSTALLER_FUNCPREFIX}" != "" + ; process /? parameter + !ifndef MULTIUSER_INSTALLMODE_NO_HELP_DIALOG ; define MULTIUSER_INSTALLMODE_NO_HELP_DIALOG to display your own help dialog (new options, return codes, etc.) + ${GetOptions} $R0 "/?" $R1 + ${ifnot} ${errors} + MessageBox MB_ICONINFORMATION "Usage:$\r$\n$\r$\n\ + /allusers$\t- (un)install for all users, case-insensitive$\r$\n\ + /currentuser - (un)install for current user only, case-insensitive$\r$\n\ + /uninstall$\t- (installer only) run uninstaller, requires /allusers or /currentuser, case-insensitive$\r$\n\ + /S$\t- silent mode, requires /allusers or /currentuser, case-sensitive$\r$\n\ + /D$\t- (installer only) set install directory, must be last parameter, without quotes, case-sensitive$\r$\n\ + /?$\t- display this message$\r$\n$\r$\n$\r$\n\ + Return codes (decimal):$\r$\n$\r$\n\ + 0$\t- normal execution (no error)$\r$\n\ + 1$\t- (un)installation aborted by user (Cancel button)$\r$\n\ + 2$\t- (un)installation aborted by script$\r$\n\ + 666660$\t- invalid command-line parameters$\r$\n\ + 666661$\t- elevation is not allowed by defines$\r$\n\ + 666662$\t- uninstaller detected there's no installed version$\r$\n\ + 666663$\t- executing uninstaller from the installer failed$\r$\n\ + 666666$\t- cannot start elevated instance$\r$\n\ + other$\t- Windows error code when trying to start elevated instance" + SetErrorLevel 0 + Quit + ${endif} + !endif + + ; process /uninstall parameter + !if "${UNINSTALLER_FUNCPREFIX}" == "" + ${GetOptions} $R0 "/uninstall" $R1 + ${ifnot} ${errors} + ${if} $CmdLineInstallMode == "" + MessageBox MB_ICONSTOP "Provide one of the /allusers or /currentuser parameters." /SD IDOK + SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} + Quit + ${endif} + + ${if} $CmdLineInstallMode == "AllUsers" ${if} $HasPerMachineInstallation == 0 - MessageBox MB_ICONSTOP "There is no per-machine installation." /SD IDOK + MessageBox MB_ICONSTOP "There is no per-machine installation of ${PRODUCT_NAME}." /SD IDOK SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} Quit ${endif} - !endif - - ${if} $IsAdmin == 0 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.Elevate - ${endif} - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers - ${else} - !if "${UNINSTALLER_FUNCPREFIX}" != "" + StrCpy $1 "$PerMachineInstallationFolder" + ${else} ${if} $HasPerUserInstallation == 0 - MessageBox MB_ICONSTOP "There is no per-user installation." /SD IDOK + MessageBox MB_ICONSTOP "There is no per-user installation of ${PRODUCT_NAME}." /SD IDOK SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} Quit - ${endif} - !endif - ${ifnot} ${IsNT} ; Not running Windows NT, (so it's Windows XP at best), so per-user installation not supported - MessageBox MB_ICONSTOP "The OS doesn't support per-user installs." /SD IDOK + ${endif} + StrCpy $1 "$PerUserInstallationFolder" + ${endif} + + ; NOTES: + ; - the _? param stops the uninstaller from copying itself to the temporary directory, which is the only way for waiting to work + ; - $R0 passes the original parameters from the installer to the uninstaller (together with /uninstall so that uninstaller knows installer is running and skips opitional single instance checks) + ; - using ExecWait fails if the new process requires elevation, see http://forums.winamp.com/showthread.php?p=3080202&posted=1#post3080202, so we use ShellExecuteEx + System::Call '*(i 60, i 0x140, i 0, t "open", t "$1\${UNINSTALL_FILENAME}", t "$R0 _?=$1", t, i ${SW_SHOW}, i, i, t, i, i, i, i) p .r9' ; allocate and fill values for SHELLEXECUTEINFO structure, returned in $9 (0x140 = SEE_MASK_NOCLOSEPROCESS|SEE_MASK_NOASYNC) + + System::Call 'shell32::ShellExecuteEx(i r9) i .r0' + ${if} $0 != 1 + SetErrorLevel $2 + Quit + ${endif} + + System::Call '*$9(i, i, i, t, t, t, t, i, i, i, t, i, i, i, i .r8)' ; get the process handle + + System::Call 'kernel32::WaitForSingleObject(i r8, i -1) i .r0 ?e' ; wait indefinitely for the process to exit + ${if} $0 != 0 ; WAIT_OBJECT_0 + SetErrorLevel $1 + Quit + ${endif} + + System::Call 'kernel32::GetExitCodeProcess(i r8, *i .r2) i .r0 ?e' + Pop $1 + ${if} $0 != 1 + SetErrorLevel $1 + Quit + ${endif} + + System::Call 'Kernel32::CloseHandle(i r8)' + System::Free $0 + + SetErrorLevel $2 + Quit + ${endif} + !endif + + ; check for limitations + ${if} ${silent} + ${andif} $CmdLineInstallMode == "" + SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} ; one of the /allusers or /currentuser parameters is required in silent mode + Quit + ${endif} + + !if "${UNINSTALLER_FUNCPREFIX}" != "" + ${if} $HasPerMachineInstallation$HasPerUserInstallation == "00" + MessageBox MB_ICONSTOP "There is no installation of ${PRODUCT_NAME}." /SD IDOK + SetErrorLevel ${MULTIUSER_ERROR_NOT_INSTALLED} + Quit + ${endif} + !endif + + ; process /allusers and /currentuser parameters (both silent and non-silent mode, installer and uninstaller) + ${if} $CmdLineInstallMode != "" + ${ifnot} ${IsNT} ; Not running Windows NT, (so it's Windows 95/98/ME), so per-user installation not supported + ${andif} $CmdLineInstallMode == "CurrentUser" + MessageBox MB_ICONSTOP "The OS doesn't support per-user installations." /SD IDOK + SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} + Quit + ${endif} + + ${if} $CmdLineInstallMode == "AllUsers" + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + ${else} + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + ${endif} + + !if "${UNINSTALLER_FUNCPREFIX}" != "" + ${if} $HasCurrentModeInstallation == 0 + MessageBox MB_ICONSTOP "There is no $CmdLineInstallMode installation of ${PRODUCT_NAME}." /SD IDOK SetErrorLevel ${MULTIUSER_ERROR_INVALID_PARAMETERS} Quit + ${endif} + !endif + + !if "${UNINSTALLER_FUNCPREFIX}" != "" + StrCpy $DisplayDialog 0 ; uninstaller - don't display dialog when there is /allusers or /currentuser parameter + !else + ${if} ${silent} + StrCpy $DisplayDialog 0 ${endif} - - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser - ${endif} - - StrCpy $DisplayDialog 0 + !endif + + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckPageElevationRequired + ${if} $0 == 1 + ${if} $DisplayDialog == 0 ; if we are not displaying the dialog (uninstaller or silent mode) and elevation is required, Elevate now (or Quit with an error) + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.Elevate + ${else} + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckElevationAllowed ; if we are displaying the dialog and elevation is required, check if elevation is allowed + ${endif} + ${endif} Return ${endif} - ${ifnot} ${IsNT} ; Not running Windows NT, (so it's Windows XP at best), so per-user installation not supported + ; the rest of the code is executed only when there are no /allusers and /currentuser parameters and in non-silent mode + ${ifnot} ${IsNT} ; Not running Windows NT, (so it's Windows 95/98/ME), so per-user installation not supported Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers StrCpy $DisplayDialog 0 Return ${endif} + + ; check if elevation on page is always required (installer only) + !if "${UNINSTALLER_FUNCPREFIX}" == "" + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckPageElevationRequired + ${if} $0 == 1 + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckElevationAllowed + ${endif} + !endif + + ; if elevation is not allowed and user is not admin, disable the per-machine option + !if ${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION} == 0 + ${if} $IsAdmin == 0 + StrCpy $PerMachineOptionAvailable 0 + ${endif} + !endif - ; uninstaller - check if there's only one installed version; - ; when invoked from the "add/remove programs", Windows will automatically start uninstaller elevated if uninstall keys are in HKLM - !if "${UNINSTALLER_FUNCPREFIX}" != "" - ${if} $HasPerUserInstallation == 0 - ${andif} $HasPerMachineInstallation == 1 + ; if there's only one installed version + ; when uninstaller is invoked from the "add/remove programs", Windows will automatically start uninstaller elevated if uninstall keys are in HKLM + ${if} $HasPerMachineInstallation$HasPerUserInstallation == "10" + !if "${UNINSTALLER_FUNCPREFIX}" == "" + ${if} $PerMachineOptionAvailable == 1 + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + ${else} + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + ${endif} + !else ${if} $IsAdmin == 0 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.Elevate + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.Elevate ; if $PerMachineOptionAvailable = 0 (i.e. MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 0), Elevate will call CheckElevationAllowed, which checks if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = 0 ${endif} - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + StrCpy $DisplayDialog 0 + !endif + ${elseif} $HasPerMachineInstallation$HasPerUserInstallation == "01" + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + !if "${UNINSTALLER_FUNCPREFIX}" != "" StrCpy $DisplayDialog 0 - Return - ${elseif} $HasPerUserInstallation == 1 - ${andif} $HasPerMachineInstallation == 0 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser - StrCpy $DisplayDialog 0 - Return - ${endif} - !endif - - ; default initialization (both installer and uninstaller) - we always display the dialog - ${if} $HasPerUserInstallation == 0 ; if there is only per-machine installation, set it as default - ${andif} $HasPerMachineInstallation == 1 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers - ${elseif} $HasPerUserInstallation == 1 ; if there is only per-user installation, set it as default - ${andif} $HasPerMachineInstallation == 0 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser - ${else} ; if there is no installation, or there are 2 installations + !endif + ${else} ; if there is no installed version (installer only), or there are 2 installations - we always display the dialog ${if} $IsAdmin == 1 ; If running as admin, default to per-machine installation (unless default is forced by MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER) - !if ${MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER} == 1 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + !if ${MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER} == 0 + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers !else - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser !endif - ${else} ; If not running as admin, default to per-user installation (unless default is forced by MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS) - !if ${MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS} == 1 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers - !else + ${else} ; if not running as admin, default to per-user installation (unless default is forced by MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS) + !if ${MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS} == 0 Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + !else + ${if} $PerMachineOptionAvailable == 1 + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers + ${else} + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser + ${endif} !endif ${endif} - ${endif} - - ; if elevation is not allowed and user is not admin, select the per-user option and disable the per-machine option - !if ${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION} == 0 - ${if} $IsAdmin == 0 - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser - StrCpy $HasTwoAvailableOptions 0 - ${endif} - !endif + ${endif} FunctionEnd Function ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModePre - ${if} ${UAC_IsInnerInstance} + ${if} $IsInnerInstance == 1 ${andif} $PreFunctionCalled == 1 - !if "${UNINSTALLER_FUNCPREFIX}" == "" - ${if} $CmdLineInstallMode == "" ; installer - user pressed Back button on the first visible page in the inner instance and installer was elevated by dialog in outer instance (not by param in the beginning) - display outer instance - SetErrorLevel ${MULTIUSER_INNER_INSTANCE_BACK} - Quit - ${endif} - !else ; uninstaller - user pressed Back button on the first visible page in the inner instance - display outer instance - SetErrorLevel ${MULTIUSER_INNER_INSTANCE_BACK} - Quit - !endif + ; user pressed Back button on the first visible page in the inner instance - display outer instance + SetErrorLevel ${MULTIUSER_INNER_INSTANCE_BACK} + Quit ${endif} StrCpy $PreFunctionCalled 1 @@ -546,42 +630,63 @@ RequestExecutionLevel user ; will ask elevation only if necessary Abort ${endif} - ;!insertmacro MUI_HEADER_TEXT_PAGE $(MULTIUSER_TEXT_INSTALLMODE_TITLE) $(MULTIUSER_TEXT_INSTALLMODE_SUBTITLE) ; "Choose Users" and "Choose for which users you want to install $(^NameDA)." - - !if "${UNINSTALLER_FUNCPREFIX}" == "" - !insertmacro MUI_HEADER_TEXT "Choose Installation Options" "Who should this application be installed for?" - !else - !insertmacro MUI_HEADER_TEXT "Choose Uninstallation Options" "Which installation should be removed?" + !ifmacrodef MUI_HEADER_TEXT + !if "${UNINSTALLER_FUNCPREFIX}" == "" + !insertmacro MUI_HEADER_TEXT "Choose Installation Options" "Who should this application be installed for?" + !else + !insertmacro MUI_HEADER_TEXT "Choose Uninstallation Options" "Which installation should be removed?" + !endif !endif - !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE + !ifdef MUI_PAGE_FUNCTION_CUSTOM_PRE + Call "${MUI_PAGE_FUNCTION_CUSTOM_PRE}" + !undef MUI_PAGE_FUNCTION_CUSTOM_PRE + !endif nsDialogs::Create 1018 - Pop $MultiUser.InstallModePage + Pop $MultiUser.InstallModePage ; default was MULTIUSER_TEXT_INSTALLMODE_TITLE "Choose Users" !if "${UNINSTALLER_FUNCPREFIX}" == "" - ${NSD_CreateLabel} 0u 0u 300u 20u "Please select whether you wish to make this software available to all users or just yourself" - StrCpy $8 "Anyone who uses this computer (&all users)" ; this was MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "Install for anyone using this computer" - StrCpy $9 "Only for &me" ; this was MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "Install just for me" + ${NSD_CreateLabel} 0 0 100% 24u "Please, select whether you wish to make this software available to all users or just yourself." !else - ${NSD_CreateLabel} 0u 0u 300u 20u "This software is installed both per-machine (all users) and per-user. $\r$\nWhich installation you wish to remove?" - StrCpy $8 "Anyone who uses this computer (&all users)" ; this was MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "Install for anyone using this computer" - StrCpy $9 "Only for &me" ; this was MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "Install just for me" + ${NSD_CreateLabel} 0 0 100% 24u "This software is installed both per-machine (all users) and per-user. $\r$\nWhich installation you wish to remove?" !endif - Pop $MultiUser.InstallModePage.Text - - ; criando os radios (disabled se nao for admin/power) e pegando os hwnds (handles) - ${NSD_CreateRadioButton} 10u 30u 280u 20u "$8" - Pop $MultiUser.InstallModePage.AllUsers - ${if} $HasTwoAvailableOptions == 0 ; install per-machine is not available - SendMessage $MultiUser.InstallModePage.AllUsers ${WM_SETTEXT} 0 "STR:$8 (must run as admin)" ; since radio button is disabled, we add that comment to the disabled control itself - EnableWindow $MultiUser.InstallModePage.AllUsers 0 # start out disabled - ${endif} - - ;${NSD_CreateRadioButton} 20u 70u 280u 10u "$9" - System::Call "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})i" - ${NSD_CreateRadioButton} 10u 50u 280u 20u "$9 ($0)" - Pop $MultiUser.InstallModePage.CurrentUser + Pop $MultiUser.InstallModePage.Text + + StrCpy $8 "Anyone who uses this computer (all users)" + ${NSD_CreateRadioButton} 30u 30% 10u 8u "" + Pop $MultiUser.InstallModePage.AllUsers + + System::Call "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})i" + StrCpy $9 "Only for me ($0)" + ${NSD_CreateRadioButton} 30u 45% 10u 8u "" + Pop $MultiUser.InstallModePage.CurrentUser + + ; We create the radio buttons with empty text and create separate labels, because radio button font color can't be changed with XP Styles turned on, + ; which creates problems with UMUI themes, see http://forums.winamp.com/showthread.php?p=3079742#post3079742 + ; shortcuts (&) for labels don't work and cause strange behaviour in NSIS - going to another page, etc. + ${NSD_CreateLabel} 44u 30% 280u 8u "$8" + Pop $MultiUser.InstallModePage.AllUsersLabel + nsDialogs::SetUserData $MultiUser.InstallModePage.AllUsersLabel $MultiUser.InstallModePage.AllUsers + ${NSD_CreateLabel} 44u 45% 280u 8u "$9" + Pop $MultiUser.InstallModePage.CurrentUserLabel + nsDialogs::SetUserData $MultiUser.InstallModePage.CurrentUserLabel $MultiUser.InstallModePage.CurrentUser + + ${if} $PerMachineOptionAvailable == 0 ; install per-machine is not available + SendMessage $MultiUser.InstallModePage.AllUsersLabel ${WM_SETTEXT} 0 "STR:$8 (must run as admin)" ; only when $PerMachineOptionAvailable == 0, we add that comment to the disabled control itself + ${orif} $CmdLineInstallMode != "" + EnableWindow $MultiUser.InstallModePage.AllUsersLabel 0 ; start out disabled + EnableWindow $MultiUser.InstallModePage.AllUsers 0 ; start out disabled + ${endif} + + ${if} $CmdLineInstallMode != "" + EnableWindow $MultiUser.InstallModePage.CurrentUserLabel 0 + EnableWindow $MultiUser.InstallModePage.CurrentUser 0 + ${endif} + + ; bind to label click + ${NSD_OnClick} $MultiUser.InstallModePage.CurrentUserLabel ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionLabelClick + ${NSD_OnClick} $MultiUser.InstallModePage.AllUsersLabel ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionLabelClick ; bind to radiobutton change ${NSD_OnClick} $MultiUser.InstallModePage.CurrentUser ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionClick @@ -592,53 +697,45 @@ RequestExecutionLevel user ; will ask elevation only if necessary nsDialogs::OnBack $0 !endif - ${NSD_CreateLabel} 0u 110u 280u 50u "" - Pop $MultiUser.RadioButtonLabel1 - ;${NSD_CreateLabel} 0u 120u 280u 20u "" - ;Pop $RadioButtonLabel2 - ;${NSD_CreateLabel} 0u 130u 280u 20u "" - ;Pop $RadioButtonLabel3 + ${NSD_CreateLabel} 0u -32u 100% 32u "" ; will hold up to 4 lines of text + Pop $MultiUser.InstallModePage.Description ${if} $MultiUser.InstallMode == "AllUsers" ; setting selected radio button - SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0 ; select radio button - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.SetShieldAndTexts ; simulating click on the control will change $INSTDIR and reset a possible user selection + SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0 ; select radio button ${else} - SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0 ; select radio button - Call ${UNINSTALLER_FUNCPREFIX}MultiUser.SetShieldAndTexts ; simulating click on the control will change $INSTDIR and reset a possible user selection + SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0 ; select radio button ${endif} + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.SetShieldAndTexts ; simulating click on the control will change $INSTDIR and reset a possible user selection + + !ifmacrodef UMUI_IOPAGEBGTRANSPARENT_INIT ; UMUI, apply theme to controls + !ifndef USE_MUIEx ; for MUIEx, applying themes causes artifacts + !insertmacro UMUI_IOPAGEBGTRANSPARENT_INIT $MultiUser.InstallModePage + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.Text + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.AllUsers + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.AllUsersLabel + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.CurrentUser + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.CurrentUserLabel + !insertmacro UMUI_IOPAGECTLTRANSPARENT_INIT $MultiUser.InstallModePage.Description + !endif + !endif - !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW + !ifdef MUI_PAGE_FUNCTION_CUSTOM_SHOW + Call "${MUI_PAGE_FUNCTION_CUSTOM_SHOW}" + !undef MUI_PAGE_FUNCTION_CUSTOM_SHOW + !endif nsDialogs::Show FunctionEnd Function ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeLeave - !if ${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION} == 1 ; if it's not Power or Admin, but elevation is allowed - StrCpy $0 0 - - !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 - !if "${UNINSTALLER_FUNCPREFIX}" == "" ; installer - ${if} $MultiUser.InstallMode == "CurrentUser" - ${andif} $IsAdmin == 0 - ${andif} $HasPerMachineInstallation == 1 - ${andif} $HasPerUserInstallation == 0 - ; has to uninstall the per-machine istalattion, which requires admin rights - StrCpy $0 1 - ${endif} - !endif - !endif - - ${if} $MultiUser.InstallMode == "AllUsers" - ${andif} $IsAdmin == 0 - StrCpy $0 1 - ${endif} - + !if ${MULTIUSER_INSTALLMODE_ALLOW_ELEVATION} == 1 ; if elevation is allowed + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckPageElevationRequired + ${if} $0 == 1 HideWindow !insertmacro UAC_RunElevated ;MessageBox MB_OK "[$0]/[$1]/[$2]/[$3]" - ;http://www.videolan.org/developers/vlc/extras/package/win32/NSIS/UAC/Readme.html - ;http://nsis.sourceforge.net/UAC_plug-in + ; http://nsis.sourceforge.net/UAC_plug-in ${Switch} $0 ${Case} 0 ${Switch} $1 @@ -661,7 +758,7 @@ RequestExecutionLevel user ; will ask elevation only if necessary MessageBox MB_ICONSTOP "Elevation is not supported by your operating system." /SD IDOK ${EndSwitch} ${Break} - ${Case} 1223 ;user aborted elevation dialog - stay on page + ${Case} 1223 ; user aborted elevation dialog - stay on page ${Break} ${Case} 1062 ; Logon service not running - stay on page MessageBox MB_ICONSTOP "Unable to elevate, Secondary Logon service not running" /SD IDOK @@ -678,43 +775,28 @@ RequestExecutionLevel user ; will ask elevation only if necessary ${endif} !endif - !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE + !ifdef MUI_PAGE_FUNCTION_CUSTOM_LEAVE + Call "${MUI_PAGE_FUNCTION_CUSTOM_LEAVE}" + !undef MUI_PAGE_FUNCTION_CUSTOM_LEAVE + !endif FunctionEnd Function ${UNINSTALLER_FUNCPREFIX}MultiUser.SetShieldAndTexts GetDlgItem $1 $hwndParent 1 ; get item 1 (next button) at parent window, store in $0 - (0 is back, 1 is next .. what about CANCEL? http://nsis.sourceforge.net/Buttons_Header ) - StrCpy $0 0 - ${if} $IsAdmin == 0 - ${if} $MultiUser.InstallMode == "AllUsers" - StrCpy $0 1 - ${else} - !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 - !if "${UNINSTALLER_FUNCPREFIX}" == "" - ${if} $HasPerUserInstallation == 0 - ${andif} $HasPerMachineInstallation == 1 - StrCpy $0 1 - ${endif} - !endif - !endif - ${endif} - ${endif} - SendMessage $1 ${BCM_SETSHIELD} 0 $0 ; display/hide SHIELD + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.CheckPageElevationRequired + SendMessage $1 ${BCM_SETSHIELD} 0 $0 ; display/hide SHIELD (Windows Vista and above) StrCpy $0 "$MultiUser.InstallMode" ; if necessary, display text for different install mode than the actual one in $MultiUser.InstallMode !if ${MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS} == 0 !if "${UNINSTALLER_FUNCPREFIX}" == "" ${if} $MultiUser.InstallMode == "AllUsers" ; user selected "all users" - ${if} $HasPerMachineInstallation == 0 - ${andif} $HasPerUserInstallation == 1 + ${if} $HasPerMachineInstallation$HasPerUserInstallation == "01" StrCpy $0 "CurrentUser" ; display information for the "current user" installation ${endif} - ${else} ; user selected "current user" - ${if} $HasPerUserInstallation == 0 - ${andif} $HasPerMachineInstallation == 1 - StrCpy $0 "AllUsers" ; display information for the "all users" installation - ${endif} + ${elseif} $HasPerMachineInstallation$HasPerUserInstallation == "10" ; user selected "current user" + StrCpy $0 "AllUsers" ; display information for the "all users" installation ${endif} !endif !endif @@ -767,10 +849,22 @@ RequestExecutionLevel user ; will ask elevation only if necessary StrCpy $7 "Fresh install for current user only." ${endif} ${endif} - SendMessage $MultiUser.RadioButtonLabel1 ${WM_SETTEXT} 0 "STR:$7" - ;SendMessage $RadioButtonLabel2 ${WM_SETTEXT} 0 "STR:$8" - ;SendMessage $RadioButtonLabel3 ${WM_SETTEXT} 0 "STR:$9" + SendMessage $MultiUser.InstallModePage.Description ${WM_SETTEXT} 0 "STR:$7" FunctionEnd + + Function ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionLabelClick + pop $1 ; get clicked control's HWND, which is on the stack in $1 + nsDialogs::GetUserData $1 + pop $2 + + ${NSD_Uncheck} $MultiUser.InstallModePage.AllUsers + ${NSD_Uncheck} $MultiUser.InstallModePage.CurrentUser + ${NSD_Check} $2 ; ${NSD_Check} will check both radio buttons without the above 2 lines + ${NSD_SetFocus} $2 + Push $2 + ; ${NSD_Check} doesn't call Click event + Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionClick + FunctionEnd Function ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallModeOptionClick pop $1 ; get clicked control's HWND, which is on the stack in $1 @@ -793,7 +887,6 @@ RequestExecutionLevel user ; will ask elevation only if necessary !endif !macroend -; SHCTX is the hive HKLM if SetShellVarContext all, or HKCU if SetShellVarContext user !macro MULTIUSER_RegistryAddInstallInfo !verbose push !verbose 3 @@ -804,20 +897,22 @@ RequestExecutionLevel user ; will ask elevation only if necessary ; Write the uninstall keys for Windows ${if} $MultiUser.InstallMode == "AllUsers" ; setting defaults WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayName" "${MULTIUSER_INSTALLMODE_DISPLAYNAME}" - WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" '"$INSTDIR\${UNINSTALL_FILENAME}" /allusers' ; "UninstallString" + WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "UninstallString" '"$INSTDIR\${UNINSTALL_FILENAME}" /allusers' ${else} WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayName" "${MULTIUSER_INSTALLMODE_DISPLAYNAME} (current user)" ; "add/remove programs" will show if installation is per-user - WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" '"$INSTDIR\${UNINSTALL_FILENAME}" /currentuser' ; "UninstallString" + WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "UninstallString" '"$INSTDIR\${UNINSTALL_FILENAME}" /currentuser' ${endif} WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayVersion" "${VERSION}" - WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayIcon" "$INSTDIR\${PROGEXE},0" - WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "Publisher" "${COMPANY_NAME}" + WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "DisplayIcon" "$INSTDIR\${PROGEXE},0" + !ifdef COMPANY_NAME + WriteRegStr SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "Publisher" "${COMPANY_NAME}" + !endif WriteRegDWORD SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "NoModify" 1 WriteRegDWORD SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "NoRepair" 1 ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 ; get folder size, convert to KB IntFmt $0 "0x%08X" $0 - WriteRegDWORD SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "EstimatedSize" "$0" + WriteRegDWORD SHCTX "${MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY2}" "EstimatedSize" "$0" !verbose pop !macroend diff --git a/License.txt b/License.txt new file mode 100644 index 0000000..bc970b7 --- /dev/null +++ b/License.txt @@ -0,0 +1,19 @@ +Copyright (c) 2017 Richard Drizin, Alex Mitev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 5b28500..ccd5264 100644 --- a/README.md +++ b/README.md @@ -1,183 +1,88 @@ # NSIS Multi User Plugin -Installer/Uninstaller that allows installations "per-user" (no admin required) or "per-machine" (asks elevation only when necessary) - -This plugin is based on [MultiUser.nsh (by Joost Verburg)](http://nsis.sourceforge.net/Docs/MultiUser/Readme.html) but with some new features and some simplifications: -- Installer allows installations "per-user" (no admin required) or "per-machine" (as original) -- If running user IS part of Administrators group, he is not forced to elevate (only if necessary - for per-machine install) -- If running user is NOT part of Administrators group, he is still able to elevate and install per-machine (I expect that power-users will have administrator password, but will not be part of the administrators group) -- UAC Elevation happens only when necessary (when per-machine is selected), not in the start of the installer -- Uninstaller block is mandatory (why shouldn't it be?) -- If there are both per-user and per-machine installations, user can choose which one to remove during uninstall -- Correctly creates and removes shortcuts and registry (per-user and per-machine are totally independent) -- Fills uninstall information in registry like Icon and Estimated Size. -- If running as non-elevated user, the "per-machine" install can be allowed (automatically invoking UAC elevation) or can be disabled (suggesting to run again as elevated user) -- If elevation is invoked for per-machine install, the calling process automatically hides itself, and the elevated inner process automatically skips the choice screen (cause in this case we know that per-machine installation was chosen) -- If uninstalling from the "add/remove programs", automatically detects if user is trying to remove per-machine or per-user install -- If someone tries to uninstall a per-machine-installation by running directly uninstall.exe (not using add/remove programs), it will automatically ask for elevation -- Known issue: If uninstalling from Windows 10 - Settings - Apps & features, will always need UAC because uninstall is not signed. - -## Structure: - - `Include` - contains all necessary headers (*.nsh), including [UAC Plugin](http://nsis.sourceforge.net/UAC_plug-in) v0.2.4c (2015-05-26) - - `Plugins` - contains only the DLLs for the [UAC Plugin](http://nsis.sourceforge.net/UAC_plug-in) v0.2.4c (2015-05-26). - -## Installation - -### All Users -1. Copy/Extract `Include` contents to NSIS includes directory (usually `C:\Program Files\Nsis\Include\` or `C:\Program Files (x86)\Nsis\Include\`) -2. Copy/Extract `Plugins` contents to NSIS plugins directory (usually `C:\Program Files\Nsis\Plugins\` or `C:\Program Files (x86)\Nsis\Plugins\`) -3. Add reference to `NsisMultiUser.nsh` in your main NSI file like this: - `!include "NsisMultiUser.nsh"` - -### Local -1. Copy the whole project into any folder (suggestion is a subfolder called `NsisMultiUser` under your NSIS Script folder) -2. Add reference to the DLLs and to the INCLUDE headers like this: - ```nsis - ; if you don't have UAC plug-in installed, add plugin directories (DLLs) to the search path - !addplugindir /x86-ansi ".\NsisMultiUser\Plugins\x86-ansi\" - !addplugindir /x86-unicode ".\NsisMultiUser\Plugins\x86-unicode\" - - ; include the path to header file (full or relative paths), or just add the include directory to the search path (like !addplugindir above) - ;!include ".\NsisMultiUser\Include\NsisMultiUser.nsh" - !addincludedir ".\NsisMultiUser\Include\" - !include "NsisMultiUser.nsh" - - !include "MUI2.nsh" ; NsisMultiUser depends on MUI2 - !include LogicLib.nsh - - - ``` +NSIS plugin that allows "per-user" (no admin required) and "per-machine" (asks elevation *only when necessary*) installations. This plugin was inspired by [MultiUser.nsh (by Joost Verburg)](http://nsis.sourceforge.net/Docs/MultiUser/Readme.html), but supports a lot of new features and is easier to use. -## Usage +## How It Works + +### Installer +The plugin creates a custom Install Options page based on the nsDisalogs library that is displayed before the Components page. The page is displayed always and has two options: install for all users (per-machine) and install for current user only (per-user). When the user starts the setup, he is not forced to elevate in the beginning. If the user selects per-user install, he can install only for himself without being asked for elevation (except when there is per-machine installation that needs to be removed first). If the user selects per-machine install, the Windows shield is displayed on the Next button and elevation is required. Limited users can also install per-machine as long as they know the administrator credentials. + +### Uninstaller +The plugin creates the same custom page and shows it in the beginning of the uninstaller if there are two installations. Elevation is required only when per-machine version is uninstalled. If there is only one installed version or if command-line parameters are passed specifying which version to uninstall, the page is not displayed. In this case, the uninstaller asks for elevation if per-machine version is to be uninstalled. When invoked from the Windows Uninstall dialog or from the Start menu, a parameter to the uninstaller is passed, so that it detects which verion to uninstall, and the page is not displayed. + +### Both +An option (`MULTIUSER_INSTALLMODE_ALLOW_ELEVATION`) defines whether elevation if allowed. If elevation is disabled, the per-machine option becomes available only if the (un)installer is started elevated from Windows and is disabled otherwise. -The include for `NsisMultiUser.nsh` should be done *after* defining the following constants: - -```nsis -!define APP_NAME "Servantt" -!define UNINSTALL_FILENAME "uninstall.exe" -!define MULTIUSER_INSTALLMODE_INSTDIR "${APP_NAME}" ; suggested name of directory to install (under $PROGRAMFILES or $LOCALAPPDATA) -!define MULTIUSER_INSTALLMODE_INSTALL_REGISTRY_KEY "${APP_NAME}" ; registry key for INSTALL info, placed under [HKLM|HKCU]\Software (can be ${APP_NAME} or some {GUID}) -!define MULTIUSER_INSTALLMODE_UNINSTALL_REGISTRY_KEY "${APP_NAME}" ; registry key for UNINSTALL info, placed under [HKLM|HKCU]\Software\Microsoft\Windows\CurrentVersion\Uninstall (can be ${APP_NAME} or some {GUID}) -!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "UninstallString" -!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "InstallLocation" -;!define MULTIUSER_INSTALLMODE_DISPLAYNAME "${APP_NAME} ${VERSION} ${PRODUCT_EDITION}" ; optional... default is "${APP_NAME} ${VERSION}" -!define MULTIUSER_INSTALLMODE_ALLOW_ELEVATION ; OPTIONAL - allow requesting for elevation... if false, radiobutton will be disabled and user will have to restart installer with elevated permissions -!define MULTIUSER_INSTALLMODE_DEFAULT_ALLUSERS ; OPTIONAL (only available if MULTIUSER_INSTALLMODE_ALLOW_ELEVATION) - will mark "all users" (per-machine) as default even if running as non-elevated user. -``` - -Between your pages (normally you'll want to add it after the PAGE_LICENSE), just add this call to MULTIUSER_PAGE_INSTALLMODE: - -```nsis -!insertmacro MUI_PAGE_LICENSE "..\License.rtf" -;... -!insertmacro MULTIUSER_PAGE_INSTALLMODE ; this will show the 2 install options, unless it's an elevated inner process (in that case we know we should install for all users) -;... -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_INSTFILES -``` - -In your main section, after writing all files (and uninstaller) just add this call (MULTIUSER_RegistryAddInstallInfo): - -```nsis -Section "MyProgram (required)" - SectionIn RO - - ; Set output path to the installation directory. - SetOutPath $INSTDIR - SetOverwrite on - - ; Put files there - File "..\Release\Obfuscated\${PROGEXE}" - File "..\Release\Obfuscated\${PROGEXE}.config" - File "..\Release\ExternalReference.dll" - ; ... - File "..\License.rtf" - WriteUninstaller "${UNINSTALL_FILENAME}" - !insertmacro MULTIUSER_RegistryAddInstallInfo ; add registry keys -SectionEnd -``` - -In the end of your uninstall, do the same (MULTIUSER_RegistryRemoveInstallInfo): - -```nsis -Section "Uninstall" - ; Remove files and uninstaller - Delete $INSTDIR\*.dll - Delete $INSTDIR\*.exe - Delete $INSTDIR\*.rtf - Delete $INSTDIR\*.config - - ; Remove shortcuts, if any - ;SetShellVarContext all ; all users - Delete "$SMPROGRAMS\Servantt\*.*" - - ; Remove directories used - RMDir "$SMPROGRAMS\Servantt" - RMDir "$INSTDIR" - - !insertmacro MULTIUSER_RegistryRemoveInstallInfo ; Remove registry keys -SectionEnd -``` - -In the shortcuts section, don’t set var context (plugin will do), and use $SMPROGRAMS: - -```nsis -Section "Start Menu Shortcuts" - ;SetShellVarContext all ; all users - CreateDirectory "$SMPROGRAMS\${APP_NAME}" - ;CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\${UNINSTALL_FILENAME}" "" "$INSTDIR\${UNINSTALL_FILENAME}" 0 ; shortcut for uninstall is bad cause user can choose this by mistake during search. - CreateShortCut "$SMPROGRAMS\${APP_NAME}\${PRODUCT_NAME} ${VERSION}.lnk" "$INSTDIR\${PROGEXE}" "" "$INSTDIR\${PROGEXE}" 0 - Delete "$SMPROGRAMS\${APP_NAME}\${APP_NAME} 1.0*" ; old versions -SectionEnd -``` - -Initialize the plugin both for install and for uninstall (MULTIUSER_INIT and MULTIUSER_UNINIT): - -```nsis -Function .onInit - !insertmacro MULTIUSER_INIT -FunctionEnd - -Function un.onInit - !insertmacro MULTIUSER_UNINIT -FunctionEnd -``` +An option (`MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS`) defines whether simultaneous per-user and per-machine installations on the same machine are allowed. If set to disallow, the installer alaways requires elevation when there's per-machine installation in order to remove it first. +## Features +- Not tied or dependant on any particular user interface. Supports Modern UI 1/2, ModernUIEx, Ultra Modern UI, the native NSIS interface, as well as any other interface that supports nsDialogs pages. +- Includes fully functional demos for all supported interfaces that you can use as skeletons to start your scripts from. +- Support for 64-bit installations +- Correctly creates and removes full registry uninstall information like icon and estimated size (separate per-user and per-machine entries) +- Fully supports silent mode, command-line switches and error level handling +- Fully documented ## Screenshots -User runs the installer, no elevation is required unless/until it's necessary. +When `MULTIUSER_INSTALLMODE_ALLOW_ELEVATION` is `1`, there is no existing istallation and running as a regular user (Ultra Modern UI). +Installation for current user requires no elevation: + +![Installation for current user requires no elevation](./Screenshots/01.png?raw=true "Installation for current user requires no elevation") +![Per-user installation folder](./Screenshots/02.png?raw=true "Per-user installation folder") + +Installation for all users requires elevation: + +![Installation for all users requires elevation](./Screenshots/03.png?raw=true "Installation for all users requires elevation") -If the **ALLOW_ELEVATION** is NOT defined and user is NOT running as admin, only per-user installation is offered: +When running as admin, no elevation is required: -![Per-user install](/Documentation/screenshot1.png?raw=true) -![Per-user install](/Documentation/screenshot2.png?raw=true) +![When running as admin, no elevation is required](./Screenshots/04.png?raw=true "When running as admin, no elevation is required") +When there is an existing installation, it is always selected (Modern UI 2): -If the user is running as admin or if **ALLOW_ELEVATION** is defined, both options are offered: +![Existing instalation is always selected](./Screenshots/05.png?raw=true "Existing instalation is always selected") -![Per-user install](/Documentation/screenshot3.png?raw=true) +When `MULTIUSER_INSTALLMODE_ALLOW_BOTH_INSTALLATIONS` is `0`, there is existing per-machine installation and running as a regular user, elevation to install per-user is required (Modern UI 2): -PS: If running as regular user, default is to suggest a per-user install, unless **DEFAULT_ALLUSERS** is defined +![When there is per-machine installation and elevation per-user is required](./Screenshots/06.png?raw=true "When there is per-machine installation and elevation per-user is required") -Reinstallations/Upgrades will always suggest to use the existing installation: +When `MULTIUSER_INSTALLMODE_ALLOW_ELEVATION` is `0` and running as a regular user, per-machine option is disabled (native NSIS interface): -![Per-user install](/Documentation/screenshot4.png?raw=true) +![Per-machine option is disabled](./Screenshots/07.png?raw=true "Per-machine option is disabled") -![Per-user install](/Documentation/screenshot5.png?raw=true) +When invoked with the `/allusers` parameter and `MULTIUSER_INSTALLMODE_ALLOW_ELEVATION` is `1` (native NSIS interface): +![/allusers parameter](./Screenshots/08.png?raw=true "/allusers parameter") -**If there are both per-user and per-machine installations**, uninstaller will ask which one should be removed. +When invoked with the `/allusers` parameter and `MULTIUSER_INSTALLMODE_ALLOW_ELEVATION` is `0`: -![Per-user install](/Documentation/screenshot6.png?raw=true) +![/allusers parameter and elevation is disabled](./Screenshots/09.png?raw=true "/allusers parameter and elevation is disabled") -The "add/remove programs" will show individual installations (one is stored in HKLM and other in HKCU): +When there are both per-user and per-machine installations and uninstaller is invoked without parameters, page is displayed (Ultra Modern UI): + +![Uninstaller page](./Screenshots/10.png?raw=true "Uninstaller page") + +The Windows Uninstall list of programs will show individual entries when there are both per-machine and per-user installations (one is stored in `HKLM` and other in `HKCU`): + +![The Windows Uninstall list of programs](./Screenshots/11.png?raw=true "The Windows Uninstall list of programs") + +The help dialog, invoked with the `/?` parameter: + +![The help dialog](./Screenshots/12.png?raw=true "The help dialog") + +## Usage -![Per-user install](/Documentation/screenshot7.png?raw=true) +Please look at the fully functional demos in the `Demos` folder. -If you choose to uninstall the per-machine installation (first row) from this "add/remove" screen, command-line argument "/allusers" will make the uninstaller **automatically remove the per-machine installation** (skip the which-installation-screen, even if you also have a per-user installation on the Administrator account) +## Documentation -If you choose uninstall the per-user installation (second row) from this "**add/remove**" screen, command-line argument "/currentuser" will make the uninstaller **automatically remove the per-user installation** (skip the which-installation-screen, even if you also have a per-machine installation) +The full NsisMultiUser documentation is avaialable on the [Wiki](https://github.com/Drizin/NsisMultiUser/wiki). -If you run the uninstaller from the program folder (that is, without passing command-line arguments), this "**which installation to remove**" screen will be shown **if there is both per-user and per-machine installations**. +You can also look at: +- [UAC plugin page](http://nsis.sourceforge.net/UAC_plug-in) +- [The original MultiUser.nsh plugin](http://nsis.sourceforge.net/Docs/MultiUser/Readme.html) +- [nsDialogs plugin](http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html) +- [Modern UI](http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html) +- [Ultra Modern UI](http://ultramodernui.sourceforge.net/) +- [MSDN documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/dd765197.aspx) diff --git a/Screenshots/01.png b/Screenshots/01.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f8d600a48acd62da194a0245da43d8d742070c GIT binary patch literal 50604 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 Bq-y{G literal 0 HcmV?d00001 diff --git a/Screenshots/02.png b/Screenshots/02.png new file mode 100644 index 0000000000000000000000000000000000000000..70dfd1140aeb6e0f6c017400dc8f92607532ff5b GIT binary patch literal 53963 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

8j5}hBN_3-` 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%0DB~v_Ff;_a`zzi$MrTSlv|VfqT)%mG$e$ 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 VAM?_H2_+Q3P|sAi@(<@%{{um4^OXPq literal 0 HcmV?d00001 diff --git a/Screenshots/09.png b/Screenshots/09.png new file mode 100644 index 0000000000000000000000000000000000000000..84c9ce5f5b10154470a07c79d2718da2f4145491 GIT binary patch literal 3879 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 literal 0 HcmV?d00001 diff --git a/Screenshots/10.png b/Screenshots/10.png new file mode 100644 index 0000000000000000000000000000000000000000..e818d10635311bb7e135a5e31c83c89f35a1c0c1 GIT binary patch literal 53238 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�IXo=jF~+k1sB4nqdfP)dnCZdgjH1`>lee>pya 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 literal 0 HcmV?d00001