Permissions 是否可以在没有管理权限的情况下写入NSIS卸载信息?

Permissions 是否可以在没有管理权限的情况下写入NSIS卸载信息?,permissions,registry,nsis,uninstallation,user-permissions,Permissions,Registry,Nsis,Uninstallation,User Permissions,最近,我将基于NSIS的安装程序从安装到“program files”文件夹改为安装到本地用户文件夹,以使普通用户帐户能够在无需管理UAC升级的情况下安装(类似于SkyDrive或Google Chrome的安装方式) 要启用卸载,安装程序将使用以下方法: ; Shortcut for the key. !define REG_U "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZetaUploader" ; Write uninsta

最近,我将基于NSIS的安装程序从安装到“program files”文件夹改为安装到本地用户文件夹,以使普通用户帐户能够在无需管理UAC升级的情况下安装(类似于SkyDrive或Google Chrome的安装方式)

要启用卸载,安装程序将使用以下方法:

; Shortcut for the key.
!define REG_U "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZetaUploader"

; Write uninstall strings.
WriteRegStr HKLM "${REG_U}" "DisplayName" "Zeta Uploader ${VERSION}"
WriteRegStr HKLM "${REG_U}" "DisplayVersion" "${VERSION}"
WriteRegStr HKLM "${REG_U}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "${REG_U}" "Publisher" "Zeta Software GmbH"
WriteRegStr HKLM "${REG_U}" "URLInfoAbout" "https://www.zeta-uploader.com"
这在使用管理权限运行时效果很好,但在使用用户权限运行时(以静默方式)失败

因此,我的问题是:

是否可以在没有管理权限的情况下添加到“中央卸载控制面板”窗口

我试图搜索一个类似于要卸载的
HKLM
键的
HKCU
键,但没有找到。此外,我知道我可以编写一个开始菜单项来卸载,但我不想让我的用户太容易删除应用程序

更新1/解决方案:

基于,我发现这和解释它的方法是一样的

因此,最终的解决方案如下所示:

; Shortcut for the key.
!define REG_U "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZetaUploader"

; Write uninstall strings.
WriteRegStr HKCU "${REG_U}" "DisplayName" "Zeta Uploader ${VERSION}"
WriteRegStr HKCU "${REG_U}" "DisplayVersion" "${VERSION}"
WriteRegStr HKCU "${REG_U}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKCU "${REG_U}" "Publisher" "Zeta Software GmbH"
WriteRegStr HKCU "${REG_U}" "URLInfoAbout" "http://www.zeta-uploader.com"

(请注意,第一个代码片段中的
HKLM
已替换为
HKCU
)。

您所处的轨道是正确的,与HKLM具有相同子路径的HKCU是正确的位置

默认情况下,它不存在,但应适用于任何最新版本的Windows(不适用于Win9x,不确定NT4和2000)