运行 在 Inno Setup 中单击“完成”按钮后根据自定义复选框显示文件和程序
Run Files and Programs according to custom checkboxes after clicking on Finish Button in Inno Setup
我在 Inno Setup 的完成页面中创建了一些自定义复选框。
例如启动应用程序、打开文本文件等
我需要在用户单击完成按钮时选中这些复选框并执行所需的任何操作。我怎样才能在 Inno Setup 中做这样的事情?
代码如下:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
Launch := TNewCheckBox.Create(WizardForm);
Launch.Parent := WizardForm;
Launch.Left := WizardForm.ClientWidth - 350;
Launch.Top := WizardForm.CancelButton.Top;
Launch.Width := 120;
Launch.Height := WizardForm.CancelButton.Height;
Launch.Caption := 'Launch';
end;
end;
在 NextButtonClick
event handler 中,测试您的复选框是否被选中并采取相应行动。
function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode: Integer;
Path: string;
Message: string;
begin
if CurPageID = wpFinished then
begin
if Launch.Checked then
begin
Path := ExpandConstant('{app}\MyProg.exe');
if ExecAsOriginalUser(Path, '', '', SW_SHOW, ewNoWait, ResultCode) then
begin
Log('Executed MyProg');
end
else
begin
Message := 'Error executing MyProg: ' + SysErrorMessage(ResultCode);
MsgBox(Message, mbError, MB_OK);
end;
end;
end;
Result := True;
end;
只需检查复选框状态:
if (Launch.Checked = True) then
begin
// checkbox is checked
end
else
begin
// Checkbox is unchecked
end;
最好的地方是使用function NextButtonClick(CurPageID: Integer): Boolean;
但是在这种情况下,您需要将复选框设置为全局变量(以便可以访问)。
我在 Inno Setup 的完成页面中创建了一些自定义复选框。 例如启动应用程序、打开文本文件等
我需要在用户单击完成按钮时选中这些复选框并执行所需的任何操作。我怎样才能在 Inno Setup 中做这样的事情?
代码如下:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
Launch := TNewCheckBox.Create(WizardForm);
Launch.Parent := WizardForm;
Launch.Left := WizardForm.ClientWidth - 350;
Launch.Top := WizardForm.CancelButton.Top;
Launch.Width := 120;
Launch.Height := WizardForm.CancelButton.Height;
Launch.Caption := 'Launch';
end;
end;
在 NextButtonClick
event handler 中,测试您的复选框是否被选中并采取相应行动。
function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode: Integer;
Path: string;
Message: string;
begin
if CurPageID = wpFinished then
begin
if Launch.Checked then
begin
Path := ExpandConstant('{app}\MyProg.exe');
if ExecAsOriginalUser(Path, '', '', SW_SHOW, ewNoWait, ResultCode) then
begin
Log('Executed MyProg');
end
else
begin
Message := 'Error executing MyProg: ' + SysErrorMessage(ResultCode);
MsgBox(Message, mbError, MB_OK);
end;
end;
end;
Result := True;
end;
只需检查复选框状态:
if (Launch.Checked = True) then
begin
// checkbox is checked
end
else
begin
// Checkbox is unchecked
end;
最好的地方是使用function NextButtonClick(CurPageID: Integer): Boolean; 但是在这种情况下,您需要将复选框设置为全局变量(以便可以访问)。