如果我正在创建一个 SFX 存档,我可以通过启用临时模式(文件被解压缩到临时文件夹)来设置一个可选问题,当用户运行提取程序时,它会向用户提供一个很好的“你确定”类型的问题。
但是,通过启用临时模式,它完全忽略了“提取到路径”设置。但是,如果我禁用临时模式,则问题不可用!
我怎样才能让它提取到我想要的路径,但也能够设置该可选问题?
@ 约翰...
这在理论上听起来不错,但它不起作用。
一旦 RAR 检测到 TempMode= 开关,它就会忽略 Path= 并提取到 %TMP%。在 TempMode 下,WinRar 会在安装完成后自动删除 %TMP% 文件。
问题是,有时 WinRar 会在安装完成之前删除文件。在某些软件包上,选中等待命令会使 WinRar 等待完成。
在需要重新启动的包上,%TMP% 文件会丢失。为了询问用户“安装示例应用程序?” 然后提取文件,重新启动,并完成设置,我不得不使用一些技巧,这可能对上面的用户有所帮助。
1:像往常一样创建 SFX > TempMode,所以你有“安装示例应用程序?” 盒子。
2: Setup=xCopy > 使用 xcopy cmd 将文件复制到所需目录
3:设置=示例应用程序
通过将文件复制到新位置,它们不会在 SFX 关闭后被删除。
确定您希望将文件提取到的位置。示例:%TMP%\Folder\App.exe
创建 TempMode SFX “安装示例应用程序?” 安装程序=%TMP%\文件夹\App.exe
创建包含文件的新 SFX + TempMode SFX Path=%TMP%\Folder\TempMode SFX.exe
运行 SFX >“安装示例应用程序?” 出现 > 如果“是”,应用程序运行。
还有一种方法是创建 Path= SFX,打包成 TempMode SFX 方法,但这会导致包被解压到 %TMP%,然后将文件解压到选定的位置,或者双重解压。
这也可以,但方法 2 可以更好地工作,只需预先考虑和计划您想要提取文件的位置。
希望这可以帮助!
在对话框高级 SFX 选项的选项卡模式上按下按钮帮助后打开的帮助页面包含该段落
如果设置了解压到临时文件夹选项,您还应该指定安装程序。SFX 在此模式下会忽略Path 以提取参数。
原因很简单,并在本段上方的帮助中进行了解释。通过将存档解压缩到临时文件夹,调用的安装应用程序(*.exe、*.bat、...)负责将文件复制到安装文件夹。
但是,如果您希望 WinRAR SFX 将存档直接提取到预定义的文件夹中,并且您希望用户可以在开始提取之前取消安装:
另一种可能性是在“许可”选项卡上输入标题和问题文本作为许可文本,从而执行 SFX 存档,首先显示对话框,“许可文本”现在是带有按钮Accept和Decline的问题。
您拥有的第三种可能性是创建一个您想要使用不同名称的 SFX 副本,并使用免费资源黑客之类的工具来根据您的需要自定义此 SFX,即更改图标、位图、按钮文本和对话框中的位置,对话框的大小等。这是明确允许的,因为您可以在带有标题GUI RAR 和 ZIP SFX 模块(Default.SFX 和 Zip.SFX)的页面上阅读WinRAR的帮助。例如,您可以重新定义许可证对话框的布局,使其看起来类似于带有“是”和“否”按钮的问题消息框在您自定义的 SFX 中。我将此解决方案用于 2 个使用 WinRAR SFX 存档安装/更新的应用程序,使用 Resource Hacker 创建这样的自定义 SFX 真的很容易。
要创建提取包并保留问题框功能:
1:根据需要创建提取包。
2:使用WinRar,编辑注释文件添加TempMode="Run App?","Example Title"
示例:TempMode="Install MyApp?","Vista ◦ MyApp 2.0 ◦ x32/64"