如何从Inno Setup的Code部分运行程序或批处理文件



如何在Code节中插入Run(unzip.exe和批处理文件(而不是Run?我尝试了这里使用的Inno Setup方法:在继续安装之前安装其他安装程序并运行它,但无法使其正常工作,所以我恢复使用Run部分来运行两个脚本。到目前为止,我所做的似乎很草率。Inno Setup";成品";页面显示了一个选项复选框来运行批处理脚本,而我更希望它在到达此阶段之前自动运行。

[Setup]
PrivilegesRequired=admin
[Files]
Source: "CC.exe"; DestDir: "{pf}CC"; DestName: "CC.exe"
Source: "bbb.update.zip"; DestDir: "{userdesktop}"; Flags: deleteafterinstall
Source: "unzip.exe"; DestDir: "{userdesktop}"; Flags: deleteafterinstall
[Run]
Filename: "{userdesktop}unzip.exe"; 
Parameters: "x {userdesktop}bbb.update.zip -d {userdesktop}"; 
Flags: runascurrentuser nowait
Filename: "{userdesktop}update.bat"; 
Flags: runascurrentuser nowait postinstall skipifsilent

(安装后update.bat文件将清理(

使用Exec函数。例如在CurStepChanged事件函数中。

此外,您还需要将命令参数中的路径用引号括起来,以防它们包含空格。

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ErrorCode: Integer;
begin
if CurStep = ssPostInstall then
begin
Exec(
ExpandConstant('{userdesktop}unzip.exe'),
ExpandConstant('x "{userdesktop}bbb.update.zip" -d "{userdesktop}"'),
'', SW_HIDE, ewNoWait, ErrorCode);
Exec(
ExpandConstant('{userdesktop}update.bat'), '', '', SW_HIDE, ewNoWait, ErrorCode);
end;
end;

最新更新