From a0647756b57da05d9abde69c078e457d9fda3652 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 13 Jan 2016 16:44:16 -0800 Subject: [PATCH] delete the post-install options info from registry on uninstall --- cmake/macros/SetPackagingParameters.cmake | 1 + cmake/templates/CPackProperties.cmake.in | 1 + cmake/templates/NSIS.template.in | 15 +++++++-------- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 3ed10bd860..8bf4e2971a 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -71,6 +71,7 @@ macro(SET_PACKAGING_PARAMETERS) endif () set(GENERATED_UNINSTALLER_EXEC_NAME "Uninstall.exe") + set(REGISTRY_HKLM_INSTALL_ROOT "Software\\Microsoft\\Windows\\CurrentVersion\\Install\\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@") set(POST_INSTALL_OPTIONS_REG_GROUP "PostInstallOptions") set(CLIENT_DESKTOP_SHORTCUT_REG_KEY "ClientDesktopShortcut") set(CONSOLE_DESKTOP_SHORTCUT_REG_KEY "ConsoleDesktopShortcut") diff --git a/cmake/templates/CPackProperties.cmake.in b/cmake/templates/CPackProperties.cmake.in index 8baf223c72..87092b83f5 100644 --- a/cmake/templates/CPackProperties.cmake.in +++ b/cmake/templates/CPackProperties.cmake.in @@ -24,3 +24,4 @@ set(CLIENT_DESKTOP_SHORTCUT_REG_KEY "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@") set(CONSOLE_DESKTOP_SHORTCUT_REG_KEY "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@") set(CONSOLE_STARTUP_REG_KEY "@CONSOLE_STARTUP_SHORTCUT_REG_KEY@") set(LAUNCH_NOW_REG_KEY "@LAUNCH_NOW_REG_KEY@") +set(REGISTRY_HKLM_INSTALL_ROOT "@REGISTRY_HKLM_INSTALL_ROOT@") diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index efd45b1500..86f701d867 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -893,8 +893,7 @@ Function HandlePostInstallOptions ${If} $DESKTOP_CLIENT_STATE == ${BST_CHECKED} CreateShortCut "$DESKTOP\@INTERFACE_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ - "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" 1 + WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" 1 ${EndIf} ${EndIf} @@ -905,8 +904,7 @@ Function HandlePostInstallOptions ${If} $DESKTOP_SERVER_STATE == ${BST_CHECKED} CreateShortCut "$DESKTOP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ - "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@" 1 + WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@" "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@" 1 ${EndIf} ; check if the user asked to have Server Console launched every startup @@ -915,8 +913,7 @@ Function HandlePostInstallOptions ${If} $SERVER_STARTUP_STATE == ${BST_CHECKED} CreateShortCut "$SMSTARTUP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ - "@CONSOLE_STARTUP_REG_KEY@" 1 + WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@CONSOLE_STARTUP_REG_KEY@" 1 ${EndIf} ${EndIf} @@ -924,8 +921,7 @@ Function HandlePostInstallOptions ${NSD_GetState} $LAUNCH_NOW_CHECKBOX $LAUNCH_NOW_STATE ${If} $LAUNCH_NOW_STATE == ${BST_CHECKED} - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ - "@LAUNCH_NOW_REG_KEY@" 1 + WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@LAUNCH_NOW_REG_KEY@" 1 ; both launches use the explorer trick in case the user has elevated permissions for the installer ; it won't be possible to use this approach if either application should be launched with a command line param @@ -1098,6 +1094,9 @@ Section "Uninstall" DeleteRegKey HKCR '@HIGH_FIDELITY_PROTOCOL@' ${EndIf} + ;Delete post-install option information from registry + DeleteRegKey HKLM '@REGISTRY_HKLM_INSTALL_ROOT@' + ;Delete empty start menu parent diretories StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"