我正在准备inno安装程序,以同时安装Windows窗体应用程序和办公室加载项。 我在安装过程中部署了我所有的Windows窗体文件(exe和dll)和办公室加载项部署文件,并且所有工作都正常。 但最后,我得到了“安装完成”屏幕,而办公室插件“setup.exe”仍在运行。我不在乎在另一个应用程序运行时看到其他已安装的运行或弹出窗口,但我不喜欢inno安装程序显示“已完成”。安装Inno运行办公室加载项安装程序并等待它
这是我的代码:
[Run]
Filename: "{app}\AddIn\Deploy\setup.exe"; Flags: waituntilterminated runminimized
Filename: "{app}\MyApp.exe"; Description: {cm:LaunchProgram,{cm:MyAppName}}; Flags: nowait postinstall
因此,它不服从“runminimized”,这我没事反正....但它不服从“waituntilterminated”要么,我照顾。
请注意,“AddIn \ Deploy \ setup.exe”是由Visual Studio通过Office加载项的“发布”向导生成的文件。
我会很高兴,如果我只能运行此代码:
[code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
ResultCode : Integer;
begin
if Exec(ExpandConstant('{app}\AddIn\Deploy\setup.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
Result := 'AddIn Installed';
end
else
Result := 'AddIn NOT Installed';
NeedsRestart := false;
end;
但是,我将不得不运行后权的主要INNO安装程序的文件复制到“加载项\部署”目录.. 所以,我可能只需要正确的事件来覆盖。
您可以创建文件夹并手动提取该文件,但它是相当矫枉过正。安装成功后立即怎么样,在'CurStepChanged'事件中'CurStep'将会是'ssPostInstall'? – TLama
@TLama我尝试了你的建议,但是我的效果是一样的,当加载项设置仍在运行时,总是显示“完成”对话框。 –
然后,加载项设置必须创建一个单独的进程并退出。 '[Run]'节中的'waituntilterminated'标志也可以正常工作。你可以简单地通过执行'notepad.exe'。您将看到在关闭记事本实例之前不会显示结束页面。 – TLama