Search code examples
inno-setuppascalscript

Run Files and Programs according to custom checkboxes after clicking on Finish Button in Inno Setup


I have created some custom checkboxes in the finished page of Inno Setup. For example launching an app, opening a text file etc.

I need when the user clicks on the finish button I check those checkboxes and do whatever that is needed. How can I do such a thing in Inno Setup?

Here is the code:

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


Solution

  • In NextButtonClick event handler, test if your checkbox is checked and act accordingly.

    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;