inno-setup - 如何在安装过程中记录用户输入,以便在卸载过程中使用?

标签 inno-setup

在安装过程中,我记录了用户的输入,例如正在创建的 Windows 服务的名称。卸载此服务时,我需要知道用户最初输入的服务名称是什么。

在卸载期间获取服务名称的最佳方法是什么?

最佳答案

最适合您的要求似乎是处理 RegisterPreviousData 事件方法并从它内部调用 SetPreviousData 函数,您可以在其中将字符串值存储在自定义键下。要恢复以前存储的数据,您可以调用 GetPreviousData 功能。

下面是一个简单的用法示例:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Code]
var
  UserPage: TInputQueryWizardPage;

procedure InitializeWizard;
begin
  UserPage := CreateInputQueryPage(wpWelcome, 'Caption', 'Description', '');
  UserPage.Add('Service name:', False);
end;

procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
  SetPreviousData(PreviousDataKey, 'ServiceName', UserPage.Values[0]);
end;

function InitializeUninstall: Boolean;
var
  ServiceName: string;
begin
  ServiceName := GetPreviousData('ServiceName', '');
  if ServiceName <> '' then
    MsgBox('The value entered before: ' + ServiceName, mbInformation, MB_OK);
end;

关于inno-setup - 如何在安装过程中记录用户输入,以便在卸载过程中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776423/

相关文章:

inno-setup - Inno Setup是否应在Update上删除旧文件?

vb.net - 使用 inno setup 将节点添加到现有 XML 文件

c# - 将字符串数组从 C# 返回到 Inno Setup

windows - 使用 Inno Setup 安装应用程序依赖项/DLL

windows - 从 Inno Setup 创建受限用户

inno-setup - Inno Setup 将数组中的字符串转换为 bool 值

installation - 如何在静默安装现有 Inno 安装程序包后强制不运行程序

inno-setup - Inno Uninstaller 代码签名和名称

installation - InnoSetup : Generate Icons in Common/User Desktop based on values inside Installer

windows - 如何在不在 Inno Setup 中打开新窗口的情况下运行 CMD 命令