• 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.NETFrameworkv4.0.30319RegAsm.exe /u "%~dp0"\%filename%

    顺便解释一下,从:Admin往上(包括这句)都是请求管理员权限的,否则在win7以上系统(包括win7)直接双击会注册失败,加上那一坨,,就可以直接双击bat了。。

    bho是基于.net framework 4.0,所以RegAsm命令直接写死了,若是有更好的办法,请留言分享一下>_<,感激不尽。

    "%~dp0"\%filename%是指定bat文件的,其中的各种引号,是因为bat所在的路径有空格(比如在xp系统下,桌面的路径是:“C:Documents and SettingsAdministrator桌面”,总之很变态就是了)会导致注册失败,加个引号就解决了

    顺便提一下,注销是/u,注册是/codebase

    还有一点,若是卸载的时候,顺便想删除用户目录的话,可以用如下代码

    #define MyAppDocName "Tax Enterprise"
    
    [UninstallDelete]
    Name: "{userdocs}{#MyAppDocName}config"; Type: filesandordirs

    这样的话,卸载的时候,我的文档 目录下的"Tax Enterprise"下的config文件夹就不见了,包括config下的文件和文件夹

    好啰嗦的说。。。

  • 相关阅读:
    Magento交易邮件常见问题
    Magento谷歌分析设置
    magento SEO优化设置
    飞凤平台示范项目
    工厂生产线测量仪器的数据下发
    某外资汽车部件工厂车床联网系统
    行云仓库管理系统的概述
    arm v5,v6,v7?
    前端开发收藏夹
    mysql 事件
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/Inno_setup.html
Copyright © 2020-2023  润新知