Is it possible to run a file with Inno Setup, before the setup beginns? Documentation
            Asked
            
        
        
            Active
            
        
            Viewed 3.2k times
        
    2 Answers
29
            Yes it is. In the [code] section run the file in the InitializeSetup() function. This example launches notepad before the setup runs.
function InitializeSetup(): boolean;
var
  ResultCode: integer;
begin
  // Launch Notepad and wait for it to terminate
  if Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW,
     ewWaitUntilTerminated, ResultCode) then
  begin
    // handle success if necessary; ResultCode contains the exit code
  end
  else begin
    // handle failure if necessary; ResultCode contains the error code
  end;
  // Proceed Setup
  Result := True;
end;
- 
                    26This should not be done in InitializeSetup if it changes anything on the users computer. This should be done after the user has pressed "Install", i.e. PrepareToInstall() or CurStepChanged(ssInstall). – Deanna Jul 25 '11 at 15:44
 
1
            
            
        [Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
   ResultCode: integer;
begin
   ExtractTemporaryFile('卸载.bat');
   if Exec(ExpandConstant('{tmp}\卸载.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
   begin
   end
   else begin
   end;
   
end;
        user18677603
        
- 11
 - 2
 
- 
                    If you want to run the bat file in the exe when you click next, the above code is perfect – user18677603 Jul 14 '22 at 15:38
 -