NSIS: use proper data type when invoking dll functions

Also migrate away from unsupported function `SHGetSpecialFolderPath()` to `SHGetKnownFolderPath()`.

Ref:
https://nsis.sourceforge.io/Docs/System/System.html#callfuncs
https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath

PR #23471.
This commit is contained in:
Chocobo1
2025-11-14 21:35:00 +08:00
committed by GitHub
parent ffbd01eb81
commit e036781b36
3 changed files with 9 additions and 7 deletions

View File

@@ -51,7 +51,7 @@ Section $(inst_qbt_req) ;"qBittorrent (required)"
WriteRegStr HKLM "Software\Classes\magnet" "Content Type" "application/x-magnet"
WriteRegStr HKLM "Software\Classes\magnet" "URL Protocol" ""
System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, p 0, p 0)'
System::Call 'shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, p 0, p 0)'
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\qBittorrent" "DisplayName" "qBittorrent"