• Inno Setup自定义卸载文件名称的脚本


    Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername 。

    一旦安装过程结束后,你当然可以将卸载文件的名称改成任意其它的文件名,注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat,还要更改注册表中的相关卸载信息。由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示,所以你可以让你的安装程序自动进行这些修改,见示例脚本。

    以下为引用的内容:; Inno Setup 脚本
    ; 该示例脚本显示如何自定义卸载文件的名称(默认为 unins000.exe,unins001.exe 等等)。
    [Setup]
    AppName=自定义卸载文件名示例程序
    AppVerName=自定义卸载文件名示例程序 1.0
    DefaultDirName={pf}/自定义卸载文件名示例程序
    DefaultGroupName=自定义卸载文件名示例程序
    [Files]
    Source: "MyProg.exe"; DestDir: "{app}"
    Source: "MyProg.hlp"; DestDir: "{app}"
    Source: "Readme.txt"; DestDir: "{app}"
    [CODE]
    procedure CurStepChanged(CurStep: TSetupStep);
    var
    uninspath, uninsname, NewUninsName, MyAppName: string;
    begin
    if CurStep=ssDone then
    begin
    // 指定新的卸载文件名(不包含扩展名),请相应修改!
    NewUninsName := '卸载';
    // 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
    MyAppName := '自定义卸载文件名示例程序';
    // 以下重命名卸载文件
    uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
    uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
    RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
    RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
    // 以下修改相应的注册表内容
    if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + MyAppName + '_is1') then
    begin
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
    end;
    end;
    end;

  • 相关阅读:
    VC++实现感染文件式加载DLL文件
    vC++实现遍历桌面和快速启动里的所有快捷方式,判断快捷方式是不是浏览器,如果是则删除快捷方式参数
    VC++另类实现进程插入
    云服务系列:Windows Azure SDK for .NET(2012 年 6 月发布的版本)的最新消息
    VC++1.5K字节实现下载并远程注入
    上海求职指南 (最新版)
    WinAPI: GetWindowText 获取窗口标题
    WinAPI: SetCursorPos 设置鼠标指针位置
    WinAPI: SetComputerName 更改计算机名称
    GDI+ 学习记录(31): 图像颜色变换(TGPImageAttributes)
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5761663.html
Copyright © 2020-2023  润新知