Section "MainSection" SEC01 !insertmacro CheckDotNET ${DOTNET_VERSION} SetOutPath "$INSTDIR" SetOverwrite ifnewer File "..\bin\Debug\SL_Switcher.exe" CreateDirectory "$SMPROGRAMS\SL Switcher" CreateDirectory "$SMPROGRAMS\SL Switcher\LL" CreateDirectory "$SMPROGRAMS\SL Switcher\Run" CreateDirectory "$SMPROGRAMS\SL Switcher\ThirdParty" CreateShortCut "$SMPROGRAMS\SL Switcher\SL Switcher.lnk" "$INSTDIR\SL_Switcher.exe" CreateShortCut "$DESKTOP\SL Switcher.lnk" "$INSTDIR\SL_Switcher.exe" !insertmacro ngen_install "$INSTDIR\SL_Switcher.exe" SectionEnd Section -AdditionalIcons WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateShortCut "$SMPROGRAMS\SL Switcher\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" CreateShortCut "$SMPROGRAMS\SL Switcher\Uninstall.lnk" "$INSTDIR\uninst.exe" SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\SL_Switcher.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\SL_Switcher.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" WriteRegStr ${SWITCHER_ROOT_KEY} "${SWITCHER_REGKEY}" "Path" "$INSTDIR" WriteRegStr ${SWITCHER_ROOT_KEY} "${SWITCHER_REGKEY}" "Revision" "${PRODUCT_REVISION}" SectionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." FunctionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 Abort FunctionEnd Section Uninstall !insertmacro ngen_uninstall "$INSTDIR\SL_Switcher.exe" Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\SL_Switcher.exe" Delete "$SMPROGRAMS\SL Switcher\Uninstall.lnk" Delete "$SMPROGRAMS\SL Switcher\Website.lnk" Delete "$DESKTOP\SL Switcher.lnk" Delete "$SMPROGRAMS\SL Switcher\SL Switcher.lnk" ; These directories have files created by the program, so we ; remove them on uninstall RMDir /r "$SMPROGRAMS\SL Switcher\LL" RMDir /r "$SMPROGRAMS\SL Switcher\Run" ; ThirdParty directory is used by individual installers, so keep ; it, and let user run the uninstaller for them. RMDir "$SMPROGRAMS\SL Switcher\ThirdParty" RMDir "$SMPROGRAMS\SL Switcher" RMDir "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" DeleteRegKey ${SWITCHER_ROOT_KEY} "${SWITCHER_REGKEY}" SetAutoClose true SectionEnd