与此问题类似:
如何在Inno Setup安装脚本的[Run]部分设置进度条值?
当Inno Setup进入该[Run]部分时,进度条显示为100%并停在此位置.
我在本Run节中安装了许多文件,我希望重新启动进度条并控制它,因为它会安装每个程序.
状态消息很容易改变(StatusMsg),但我失去了一些进展.你能帮帮我吗?
例:
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""msxml.msi"" /quiet"; \
StatusMsg: "MSXML..."; Flags: runascurrentuser
Filename: "msiexec.exe"; Parameters: "/i ""capicom_dc_sdk.msi"" /quiet"; \
StatusMsg: "CAPICOM..."; Flags: runascurrentuser
Run Code Online (Sandbox Code Playgroud)
由于我想在安装过程中控制进度条,我不知道该怎么做.我想也许在使用BeforeInstall参数,创建一个代码,通过执行类似WizardForm.ProgressGauge.Position = 0;和在AfterInstall参数中相反的方式将进度条设置为0 WizardForm.ProgressGauge.Position = 100;,但是在安装过程中如何更改?
谢谢.
在我的Inno安装脚本中,我正在执行第三方可执行文件.我正在使用如下Exec()功能:
Exec(ExpandConstant('{app}\SomeExe.exe'), '', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
Run Code Online (Sandbox Code Playgroud)
提到ewWaitUntilTerminated它等到SomeExe.exe不退出.我想等待10秒钟.
那有什么解决方案吗?
我有一个Inno安装程序安装执行一些耗时的'AfterInstall'操作.执行此操作时,安装GUI完全冻结(似乎未处理主事件循环).这不是一个愉快的最终用户体验,所以也许这种操作可能不会冻结GUI?喜欢在单独的线程中执行它还是定期调用类似的东西handleGuiEventLoop()?