如何在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;