如何在安装期间记录用户输入,以便在卸载期间使用?

时间:2013-11-04 20:22:25

标签: inno-setup

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

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

1 个答案:

答案 0 :(得分:5)

最符合您要求的似乎是处理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;