如何在Inno Setup中将变量从[Code]
部分传递给[Run]
部分中的参数?
基本上,我想执行以下操作。
获取用户输入并将其保存到过程InitializeWizard
中的变量。
将用户输入传递给[Run]
部分中的可执行文件
这是我的代码。
[Run]
Filename: "someProgram.exe"; Parameters: ??userInput??
[Code]
procedure InitializeWizard;
var
ConfigPage: TInputQueryWizardPage;
UserInput: String;
begin
{ Create the page }
ConfigPage :=
CreateInputQueryPage(
wpWelcome, 'User input', 'User input',
'Please specify the following information, then click Next.');
{ Add items (False means it's not a password edit) }
ConfigPage.Add('Input here:', False);
{ Set initial values (optional) }
ConfigPage.Values[0] := ExpandConstant('hello');
{ Read values into variables }
UserInput := ConfigPage.Values[0];
end;
谢谢。
最佳答案
您正在寻找scripted constant。请参见以下示例:
[Run]
Filename: "SomeProgram.exe"; Parameters: {code:GetParams}
[Code]
var
ConfigPage: TInputQueryWizardPage;
function GetParams(Value: string): string;
begin
Result := ConfigPage.Values[0];
end;
procedure InitializeWizard;
begin
{ Create the page }
ConfigPage :=
CreateInputQueryPage(
wpWelcome, 'User input', 'User input',
'Please specify the following information, then click Next.');
{ Add items (False means it's not a password edit) }
ConfigPage.Add('Input here:', False);
{ Set initial values (optional) }
ConfigPage.Values[0] := ExpandConstant('hello');
end;