diff --git a/dist/windows/installer.nsi b/dist/windows/installer.nsi index eab18b639..aa75f5fb0 100644 --- a/dist/windows/installer.nsi +++ b/dist/windows/installer.nsi @@ -18,14 +18,14 @@ SectionEnd Section $(inst_qbt_req) ;"qBittorrent (required)" SectionIn RO - + ; Set output path to the installation directory. SetOutPath $INSTDIR - + ;Create 'translations' directory CreateDirectory $INSTDIR\translations - - ; Put file there + + ; Put file there File "qbittorrent.exe" File "qbittorrent.pdb" File "qt.conf" @@ -74,10 +74,10 @@ Section $(inst_qbt_req) ;"qBittorrent (required)" File /oname=translations\qtbase_ru.qm "translations\qtbase_ru.qm" File /oname=translations\qtbase_sk.qm "translations\qtbase_sk.qm" File /oname=translations\qtbase_uk.qm "translations\qtbase_uk.qm" - - ; Write the installation path into the registry + + ; Write the installation path into the registry WriteRegStr HKLM "Software\qBittorrent" "InstallLocation" "$INSTDIR" - + ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "DisplayName" "qBittorrent ${PROG_VERSION}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "UninstallString" '"$INSTDIR\uninst.exe"' @@ -87,53 +87,53 @@ Section $(inst_qbt_req) ;"qBittorrent (required)" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "DisplayVersion" "${PROG_VERSION}" WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "NoRepair" 1 - WriteUninstaller "uninst.exe" + WriteUninstaller "uninst.exe" ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 IntFmt $0 "0x%08X" $0 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "EstimatedSize" "$0" - + ; qBittorrent ProgID WriteRegStr HKLM "Software\Classes\qBittorrent" "" "qBittorrent Torrent File" WriteRegStr HKLM "Software\Classes\qBittorrent" "FriendlyTypeName" "qBittorrent Torrent File" WriteRegStr HKLM "Software\Classes\qBittorrent\shell" "" "open" WriteRegStr HKLM "Software\Classes\qBittorrent\shell\open\command" "" '"$INSTDIR\qbittorrent.exe" "%1"' WriteRegStr HKLM "Software\Classes\qBittorrent\DefaultIcon" "" '"$INSTDIR\qbittorrent.exe",1' - + SectionEnd ; Optional section (can be disabled by the user) Section /o $(inst_dekstop) ;"Create Desktop Shortcut" CreateShortCut "$DESKTOP\qBittorrent.lnk" "$INSTDIR\qbittorrent.exe" - + SectionEnd Section $(inst_startmenu) ;"Create Start Menu Shortcut" - CreateDirectory "$SMPROGRAMS\qBittorrent" + CreateDirectory "$SMPROGRAMS\qBittorrent" CreateShortCut "$SMPROGRAMS\qBittorrent\qBittorrent.lnk" "$INSTDIR\qbittorrent.exe" CreateShortCut "$SMPROGRAMS\qBittorrent\Uninstall.lnk" "$INSTDIR\uninst.exe" - + SectionEnd Section $(inst_torrent) ;"Open .torrent files with qBittorrent" ReadRegStr $0 HKLM "Software\Classes\.torrent" "" - + StrCmp $0 "qBittorrent" clear_errors 0 ;Check if empty string StrCmp $0 "" clear_errors 0 ;Write old value to OpenWithProgIds WriteRegStr HKLM "Software\Classes\.torrent\OpenWithProgIds" $0 "" - + clear_errors: ClearErrors WriteRegStr HKLM "Software\Classes\.torrent" "" "qBittorrent" WriteRegStr HKLM "Software\Classes\.torrent" "Content Type" "application/x-bittorrent" - + !insertmacro UAC_AsUser_Call Function inst_torrent_user ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} - + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' SectionEnd @@ -141,13 +141,13 @@ SectionEnd Function inst_torrent_user ReadRegStr $0 HKCU "Software\Classes\.torrent" "" - + StrCmp $0 "qBittorrent" clear_errors 0 ;Check if empty string StrCmp $0 "" clear_errors 0 ;Write old value to OpenWithProgIds WriteRegStr HKCU "Software\Classes\.torrent\OpenWithProgIds" $0 "" - + clear_errors: ClearErrors @@ -164,7 +164,7 @@ Section $(inst_magnet) ;"Open magnet links with qBittorrent" WriteRegStr HKLM "Software\Classes\magnet\DefaultIcon" "" '"$INSTDIR\qbittorrent.exe",1' WriteRegStr HKLM "Software\Classes\magnet\shell" "" "open" WriteRegStr HKLM "Software\Classes\magnet\shell\open\command" "" '"$INSTDIR\qbittorrent.exe" "%1"' - + !insertmacro UAC_AsUser_Call Function inst_magnet_user ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' @@ -185,8 +185,8 @@ FunctionEnd Section $(inst_firewall) DetailPrint $(inst_firewallinfo) - nsisFirewallW::AddAuthorizedApplication "$INSTDIR\qbittorrent.exe" "qBittorrent" - + nsisFirewallW::AddAuthorizedApplication "$INSTDIR\qbittorrent.exe" "qBittorrent" + SectionEnd ;-------------------------------- @@ -228,3 +228,7 @@ Function PageFinishRun !insertmacro UAC_AsUser_ExecShell "" "$INSTDIR\qbittorrent.exe" "" "" "" FunctionEnd + +Function .onInstSuccess + SetErrorLevel 0 +FunctionEnd diff --git a/dist/windows/uninstaller.nsi b/dist/windows/uninstaller.nsi index 97dc7ce5d..b5e4cde19 100644 --- a/dist/windows/uninstaller.nsi +++ b/dist/windows/uninstaller.nsi @@ -1,10 +1,10 @@ Section "un.$(remove_files)" ;"un.Remove files" SectionIn RO - -; Remove files and uninstaller + +; Remove files and uninstaller Delete "$INSTDIR\qbittorrent.exe" Delete "$INSTDIR\qbittorrent.pdb" - Delete "$INSTDIR\qt.conf" + Delete "$INSTDIR\qt.conf" Delete "$INSTDIR\translations\qt_ar.qm" Delete "$INSTDIR\translations\qt_bg.qm" Delete "$INSTDIR\translations\qt_ca.qm" @@ -51,8 +51,8 @@ Delete "$INSTDIR\translations\qtbase_sk.qm" Delete "$INSTDIR\translations\qtbase_uk.qm" Delete "$INSTDIR\uninst.exe" - - ; Remove directories used + + ; Remove directories used RMDir /r "$INSTDIR\translations" RMDir "$INSTDIR" SectionEnd @@ -71,16 +71,16 @@ Section "un.$(remove_associations)" ;"un.Remove file associations" DetailPrint "$(uninst_tor_warn) $0" DeleteRegValue HKLM "Software\Classes\.torrent" "" DeleteRegKey /ifempty HKLM "Software\Classes\.torrent" - + torrent_end: ReadRegStr $0 HKLM "Software\Classes\magnet\shell\open\command" "" StrCmp $0 '"$INSTDIR\qbittorrent.exe" "%1"' 0 magnet_end DetailPrint "$(uninst_mag_warn) $0" DeleteRegKey HKLM "Software\Classes\magnet" - + magnet_end: !insertmacro UAC_AsUser_Call Function un.remove_associations_user ${UAC_SYNCREGISTERS}|${UAC_SYNCOUTDIR}|${UAC_SYNCINSTDIR} - + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' SectionEnd @@ -90,23 +90,23 @@ Function un.remove_associations_user DetailPrint "$(uninst_tor_warn) $0" DeleteRegValue HKCU "Software\Classes\.torrent" "" DeleteRegKey /ifempty HKCU "Software\Classes\.torrent" - + torrent_end: ReadRegStr $0 HKCU "Software\Classes\magnet\shell\open\command" "" StrCmp $0 '"$INSTDIR\qbittorrent.exe" "%1"' 0 magnet_end DetailPrint "$(uninst_mag_warn) $0" DeleteRegKey HKCU "Software\Classes\magnet" - + magnet_end: FunctionEnd -Section "un.$(remove_registry)" ;"un.Remove registry keys" - SectionIn RO +Section "un.$(remove_registry)" ;"un.Remove registry keys" + SectionIn RO ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" DeleteRegKey HKLM "Software\qBittorrent" DeleteRegKey HKLM "Software\Classes\qBittorrent" - + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' SectionEnd @@ -114,7 +114,7 @@ Section "un.$(remove_firewall)" ; DetailPrint $(remove_firewallinfo) nsisFirewallW::RemoveAuthorizedApplication "$INSTDIR\qbittorrent.exe" - + SectionEnd Section /o "un.$(remove_conf)" ;"un.Remove configuration files" @@ -150,7 +150,7 @@ Function un.onInit !insertmacro Init "uninstaller" !insertmacro MUI_UNGETLANGUAGE - + FunctionEnd Function un.check_instance @@ -162,7 +162,11 @@ Function un.check_instance done: Abort - + notfound: - + +FunctionEnd + +Function un.onUninstSuccess + SetErrorLevel 0 FunctionEnd