Zuu*_*uur 5 inno-setup progress wizard
我对许多“标准”安装程序使用 Inno Setup,但对于此任务,我需要提取一堆临时文件,运行其中一个,然后删除它们并退出安装程序(不实际安装任何内容)。
基本上,我希望制作一个自解压器,而不是“安装程序”,并且追求通过 inno setup 获得最佳的用户体验。
我有以下代码,几乎可以正常工作:
[Files]
Source: "dist\*"; Flags: recursesubdirs ignoreversion dontcopy;
Run Code Online (Sandbox Code Playgroud)
[Files]
Source: "dist\*"; Flags: recursesubdirs ignoreversion dontcopy;
Run Code Online (Sandbox Code Playgroud)
问题是,我在这里能做的最好的事情就是显示一个消息框“请稍等一两分钟...”,用户单击[确定],然后等待,因为屏幕上根本没有任何内容,似乎什么也没有发生,然后MyScript.exe开始。
我想要的是一个向导页面,上面写着“请稍候,临时文件被提取...”,并带有npbstMarquee样式进度条,然后一旦文件被提取并且我的脚本启动,它就会消失。
我认为没有办法告诉 Inno Setup 在ExtractTemporaryFiles()运行时显示进度条(这将是理想的),并且将其放入自定义向导页面让我感到困惑。
{tmp},而不是使用ExtractTemporaryFiles;{tmp}执行从Run部分提取的文件(或在文件安装后使用AfterInstall参数或触发Pascal Script代码);CurStepChangedUninstallablenoCreateAppDirno[Messages]部分编辑过于以安装程序为中心的向导文本,以满足您的需求。[Setup]
Uninstallable=no
CreateAppDir=no
[Files]
Source: "dist\*"; DestDir: {tmp}; Flags: recursesubdirs
[Run]
FileName: "{tmp}\MyScript.exe"
Run Code Online (Sandbox Code Playgroud)
笔记:
{tmp}当“安装程序”关闭时,该文件夹会自动删除;ignoreversion安装到新的空文件夹时不需要标志。相关问题:仅运行一组嵌入式安装程序的 Inno Setup 安装程序
要回答您的字面问题,请参阅Inno setup: ExtractTemporaryFile Causes Wizard freeze。或者关于该主题的更通用的问题:Inno Setup: How to edit long running script so it won't freeze GUI?