NSIS卸载后无法删除开始菜单中的内容

简介:

我们在安装程序时通常会使用createShortCut命令来创建一个快捷方式,如下,是在开始–>启动项 里创建run.bat的快捷方式。

CreateShortCut "$SMPROGRAMS\启动\run.lnk" "$INSTDIR\bin\run.bat"

当我们在执行卸载操作时是这样删除的,如下

Delete "$SMPROGRAMS\启动\run.lnk"

但是,无论怎么样都删除不掉。

下面提供以下解决方案和为什么删不掉的原因:

原因:因为NSIS中使用CreateShortCut创建快捷方式时会在每一个人用户下面都创建快捷方式,然后Delete删的时候却只是在当前用户下,因此怎么删也删不掉。

解决方案:

1.在当前用户下创建快捷方式。只需添加RequestExecutionLevel user即可。

RequestExecutionLevel user   Section   CreateDirectory "$SMPROGRAMS\Vista Test"   CreateShortcut  "$SMPROGRAMS\Vista Test\hello.lnk" $WINDIR\notepad.exe   WriteUninstaller $EXEDIR\uninst.exe SectionEnd   Section uninstall   Delete "$SMPROGRAMS\Vista Test\hello.lnk"   RMDir "$SMPROGRAMS\Vista Test" SectionEnd

2.删除所有用户下的快捷方式。首先添加RequestExecutionLevel admin,然后在创建快捷方式和删除快捷方式的地方加上SetShellVarContext all即可。

RequestExecutionLevel admin #NOTE: You still need to check user rights with UserInfo!   Section   SetShellVarContext all   CreateDirectory "$SMPROGRAMS\Vista Test"   CreateShortcut  "$SMPROGRAMS\Vista Test\hello.lnk" $WINDIR\notepad.exe   WriteUninstaller $EXEDIR\uninst.exe SectionEnd   Section uninstall   SetShellVarContext all   Delete "$SMPROGRAMS\Vista Test\hello.lnk"   RMDir "$SMPROGRAMS\Vista Test" SectionEnd


本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/4256198.html,如需转载请自行联系原作者
相关文章
|
4月前
|
iOS开发 开发者 MacOS
macOS打开程序提示文件已损坏
macOS打开程序提示文件已损坏
96 5
|
5月前
|
Windows
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
187 0
|
7月前
|
定位技术 Windows
Windows电脑删除文件时确认是否删除文件的提示对话框的取消显示方法
Windows电脑删除文件时确认是否删除文件的提示对话框的取消显示方法
172 1
|
7月前
|
Linux
Deepin创建应用快捷方式
Deepin创建应用快捷方式
154 0
|
Windows
Windows删除文件夹 提示:找不到该项目
Windows删除文件夹 提示:找不到该项目
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
229 0
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
|
Ubuntu
在Ubuntu系统中给应用创建快捷方式
背景:因为Ubuntu中没有QQ版本可以使用,所以用wine+QQ 。之后安装完之后,肯定需要创建一个类似于window系统中的桌面快捷启动。每次都在终端中启动QQ实在太麻烦了, 所以我决定给QQ添加一个桌面启动器, 就是就是windows下面的快捷方式。
1896 0
|
Windows 关系型数据库 RDS
Windows删除文件时显示找不到该项目
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
1352 0
删除桌面上有文件但提示项目不存在的方法
很气人的小毛病,删也删不掉,明明有东西却提示不存在!强迫症不可忍,方法如下: 用编码搞定它首先在桌面新建一TXT文档,打开复制下面内容到里面DEL /F /A /Q \\?\%1RD /S /Q \\?\%1然后保存为.bat文件,也就是你XXX.TXT改成XXX.BAT这时,你发现图标变了。
1328 0