在Inno Setup中单击“完成”按钮后,根据自定义复选框运行文件和程序

时间:2019-03-05 11:05:58

标签: 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;

enter image description here

2 个答案:

答案 0 :(得分:1)

NextButtonClick event handler中,测试您的复选框是否已选中并采取相应措施。

function NextButtonClick(CurPageID: Integer): Boolean;
var
  ResultCode: Integer;
begin
  if CurPageID = wpFinished then
  begin
    if Launch.Checked then
    begin
      if ExecAsOriginalUser(
           ExpandConstant('{app}\MyProg.exe'), '', '', SW_SHOW, ewNoWait, ResultCode) then
      begin
        Log('Executed MyProg');
      end
        else
      begin
        MsgBox('Error executing MyProg - ' + SysErrorMessage(ResultCode), mbError, MB_OK);
      end;
    end;
  end;
  Result := True;
end;

答案 1 :(得分:1)

只需检查复选框状态:

if (Launch.Checked = True) then
begin
// checkbox is checked
end
else
begin
// Checkbox is unchecked
end;

最好的地方是使用函数NextButtonClick(CurPageID:Integer):Boolean; 但是,在这种情况下,您需要将复选框设为全局变量(以便可以访问)。