Inno Setup卸载时注销bho
Inno setup是一个制作安装包的免费工具,比如你用Qt开发完成一款软件,拿Inno setup打个安装包甩给客户安装就好了。
但是bho插件在注册后,万一用户卸载软件时,bho插件还是躺在管理加载项的列表里面,强迫症的我受不了。。。
特此,记录一下卸载软件时,如何注销bho插件。
#define MyAppUnregName "unregister.bat" [UninstallRun]
Filename: "{app}\{#MyAppUnregName}"
其实就是执行一段bat脚本,注销bho插件,顺便将bat内容也贴出来
@echo off
cd /d "%~dp0"
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit :Admin
@echo off
set filename=bho.dll
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /u "%~dp0\"\%filename%
顺便解释一下,从:Admin往上(包括这句)都是请求管理员权限的,否则在win7以上系统(包括win7)直接双击会注册失败,加上那一坨,,就可以直接双击bat了。。
bho是基于.net framework 4.0,所以RegAsm命令直接写死了,若是有更好的办法,请留言分享一下>_<,感激不尽。
"%~dp0\"\%filename%是指定bat文件的,其中的各种引号,是因为bat所在的路径有空格(比如在xp系统下,桌面的路径是:“C:\Documents and Settings\Administrator\桌面”,总之很变态就是了)会导致注册失败,加个引号就解决了
顺便提一下,注销是/u,注册是/codebase
还有一点,若是卸载的时候,顺便想删除用户目录的话,可以用如下代码
#define MyAppDocName "Tax Enterprise" [UninstallDelete]
Name: "{userdocs}\{#MyAppDocName}\config"; Type: filesandordirs
这样的话,卸载的时候,我的文档 目录下的"Tax Enterprise"下的config文件夹就不见了,包括config下的文件和文件夹
好啰嗦的说。。。
Inno Setup卸载时注销bho的更多相关文章
- Inno setup 卸载时删除程序文件夹(文件)
Inno setup 卸载时删除程序文件夹(文件) //删除所有配置文件以达到干净卸载的目的 procedure CurUninstallStepChanged(CurUninstallStep: T ...
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
- INNO SETUP卸载程序中加入自定义窗体
原文:INNO SETUP卸载程序中加入自定义窗体 [Setup] AppName=My Program AppVerName=My Program v.1.2 DefaultDirName={pf} ...
- Inno Setup安装时不能关闭指定进程
脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "XX管理系统"#defi ...
- Inno setup卸载前退出进程、删除文件夹
[Code]function InitializeUninstall(): Boolean; var MainRun: HWND; var MVRun:HWND; begin// FindWindow ...
- Inno Setup 卸载前关闭进程或服务 x86 x64
1.32位程序的PSVince.dll插件方法. [Setup] AppName=PSVince AppVerName=PSVince 1.0 DisableProgramGroupPage=true ...
- [Inno Setup] 卸载 重启之后 删除文件
某些系统文件,例如驱动,不重启无法删除. 利用windows注册表里的 RunOnce.注意必须在HKLM下,否则可能权限不够. 不能直接填cmd命令,要以cmd的参数形式填写. procedure ...
- (Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码
原文 http://bbs.itiankong.com/thread-30983-1-5.html 有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题, 因此 ...
- Inno Setup使用技巧
一.关于Inno Setup如何在安装时播放音乐 方法(1): 在脚本编译里的[Code]与[Files]段处添加以下代码: [Code] Function mciSendString(lpszCom ...
随机推荐
- 3.Redis 数据类型
转自:http://www.runoob.com/redis/redis-tutorial.html Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集 ...
- centos安装rvm报错@curl -L get.rvm.io | bash -s stable fails on cent OS
It is a security feature introduced in the latest version of RVMhttps://github.com/wayneeseguin/rvm/ ...
- 我的MAXSCRIPT笔记
getnodebyname "circle01" for o in objects do if o.name == "circle01" then select ...
- PHP 动态添加 Mcrypt 扩展库
简介: PHP 动态添加 Mcrypt 扩展库,这是一个支持多种加密.解密算法.模式的扩展库. shell > php -m | grep mcrypt # 如果没有输出,就是缺少这个扩展 sh ...
- flask 启动
export SECRET_KEY=qq77aa88 export MAIL_SERVER=smtp.qq.com export MAIL_USERNAME=591867837@qq.com expo ...
- Solr集群—SolrCloud
1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 2. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜 ...
- 解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
还记得我们定义过一个结构体如下吗? typedef struct { ngx_str_t output_words; } ngx_http_hello_world_loc_conf_t; 它就是 He ...
- 113. Path Sum II (Tree; DFS)
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...
- 5-SOM神经网络
https://blog.csdn.net/gavinlyy/article/details/8302814 https://blog.csdn.net/u011314012/article/deta ...
- EntityFramework - Code First - 数据迁移
需求 在更新模型之后同步更新数据库里的表,并不丢失原有数据 使用默认值填充新增加的字段 EntityFramework迁移命令 Enable-Migrations 启用迁移 Add-Migration ...