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
NSIS卸载后无法删除开始菜单中的内容的更多相关文章
- 下拉式菜单中的内容堆叠(ul型)
今天使用ul创建下拉式菜单,菜单中的内容堆在了一起. 这是我的html代码 <!DOCTYPE html> <html lang="en"> <hea ...
- Oracle卸载后手工删除内容
使用deinstall卸载oracle后,手工删除Oracle数据库,方法如下: 第一步:停用全部oracle服务 第二步:删除oracle注册表运行regedit在如下路径中找到oracle相关键值 ...
- 删除Win10菜单中的幽灵菜单(ms-resource:AppName/Text )
新建一个 .bat文件,输入以下内容 @echo off taskkill /f /im explorer.exe taskkill /f /im shellexperiencehost.exe ti ...
- 在try...catch语句中执行Response.End()后如何停止执行catch语句中的内容
在调用Response.End()时,会执行Thread.CurrentThread.Abort()操作. 如果将Response.End()放在try...catch中,catch会捕捉Thread ...
- Manifest.xml中删除了『存储/修改删除SD卡中的内容』和『手机通话/读取手机状态和身份』权限,但生成apk安装软件时仍提示 允许应用程序了解或使用这两个权限
原因:Android系统会给targetSdk版本为“4”以下的应用自动分配WRITE_EXTERNAL_STORAGE 和 READ_PHONE_STATE 权限. 解放办法:在manifest.x ...
- 如何删除ini文件中的内容
1.删除子项值:::WritePrivateProfileString(分区名称, 子项名称, "", ini文件路径); 2.删除子项(名称和值):::WritePrivateP ...
- 脚本添加删除nginx配置中的内容
[root@nodejs script]# more editnginx.sh #!/bin/bash # function back_check(){ # 备份配置和覆盖配置文件 cp -rf /e ...
- windows7_删除”右键-新建“菜单中的多余项
这边文章比较好用:分享下 https://blog.csdn.net/ddgweb/article/details/17993251 在使用windows7的过程中,由于安装了较多的软件,在桌面或者资 ...
- 从a文件判断是否删除b文件中的行(sed示例)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html test.xml文件很大,内容结构如下: <?xml v ...
随机推荐
- 转!sqlite3.OperationalError) no such table- users [SQL- 'SELECT users.id AS users_id, users.email AS u
在注册新用户的时候报错: (sqlite3.OperationalError) no such table: users [SQL: 'SELECT users.id AS users_id, use ...
- C++ STL标准模板库(list)
//list的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<list> using namesp ...
- python笔记8 - excel操作
前提: python操作excel需要使用的模块有xlrd.xlwt.xlutils.对excel进行读.写.更新操作.操作excel时需要先导入这些模块,demo如下: excel-读操作知识点: ...
- python笔记7:mysql、redis操作
模块安装: 数据操作用到的模块pymysql,需要通过pip install pymysql进行安装. redis操作用的模块是redis,需要通过pip install redis进行安装. 检验是 ...
- kvm和qemu的关系
KVM (Kernel Virtual Machine) is a Linux kernel module that allows a user space program to utilize th ...
- c#——表达式树在LINQ动态查询
一般如果逻辑比较简单,只是存在有的情况多一个查询条件,有的情况不需要添加该查询条件 简单方式这样操作就可以了 public IQueryable<FileImport> DynamicCh ...
- python入门(三):分支、循环、函数
1.分支 if循环格式:if condition_1: statement_block_1elif condition_2: statement_block_2else: statement_bloc ...
- JDBC批量操作性能提升
JDBC 当使用INSERT INTO....VALUES()语句批量插入的时候,应该使用JDBC的PreparedStatement的批量操作方法,而不是採用一条一条运行的方法. 比如(来源:htt ...
- Android中使用OnClickListener接口实现button点击的低级失误
今天写了几行极为简单的代码,就是想implements View.OnCLickListener.然后实现按钮点击操作.可是按钮却没有反应.找了五分钟还是没有结果. 下面是我的代码,希望大家不要嘲笑 ...
- 怎样从Mysql官网下载mysql.tar.gz版本的安装包
今天学习在Linux上部署项目,用到了Mysql,因此想要下载适用于Linux的安装版本,在Mysql官网找了半天,终于找到怎样下载了,这里写出来,以后大家找的时候就好找了. 第一步:在百度输入My ...