帮助中心 helper



NSIS软件快捷方式删除不掉

发布于:2017-05-11 16:56 编辑:Surou  浏览:

这里我们需要用到SetShellVarContext指令

1
2
释义:设置 $SMPROGRAMS 的内容或其他命令解释程序目录。如果设为 'current' (默认值),则使用当前用户的命令解释程序目录。如果设为 'all',则使用所有用户的命令解释程序目录。所有用户目录可能不能被所有的操作系统支持。如果所有用户的目录找不到则使用当前用户代替。 请考虑一个普通用户或游客是否有正确的权限在所有用户目录里操作。仅仅管理员才有完全的权限访问所有用户目录。你可以用 UserInfo 插件来查看用户身份。详细信息请查看 Contrib\UserInfo\UserInfo.nsi 例子。
注意:如果该指令用于安装程序,那么它只对安装程序有效,而如果它用于卸载程序,那么它仅对卸载程序有效,如果要两者都有效,你必须在安装程序和卸载程序里都使用。

我们可以通过以下方法来处理:
右键单击无法删除的快捷方式,点击“常规”标签,位置如果是C:\Users\Public\Desktop则说明是所有用户桌面,否则就是当前用户桌面,开始菜单原理相同。
删除代码如下:

1
2
3
4
;所有用户,根据你的实际情况选用
SetShellVarContext all
Delete "$DESKTOP\我的软件快捷方式.lnk"
RMDir /r "$SMPROGRAMS\我的软件"
1
2
3
4
;当前用户,根据你的实际情况选用
SetShellVarContext current
Delete "$DESKTOP\我的软件快捷方式.lnk"
RMDir /r "$SMPROGRAMS\我的软件"


文章来源:nsisfans