0

如果我正在创建一个 SFX 存档,我可以通过启用临时模式(文件被解压缩到临时文件夹)来设置一个可选问题,当用户运行提取程序时,它会向用户提供一个很好的“你确定”类型的问题。

但是,通过启用临时模式,它完全忽略了“提取到路径”设置。但是,如果我禁用临时模式,则问题不可用!

我怎样才能让它提取到我想要的路径,但也能够设置该可选问题?

4

3 回答 3

1

@ 约翰...

这在理论上听起来不错,但它不起作用。


问题:

一旦 RAR 检测到 TempMode= 开关,它就会忽略 Path= 并提取到 %TMP%。在 TempMode 下,WinRar 会在安装完成后自动删除 %TMP% 文件。

问题是,有时 WinRar 会在安装完成之前删除文件。在某些软件包上,选中等待命令会使 WinRar 等待完成。

在需要重新启动的包上,%TMP% 文件会丢失。为了询问用户“安装示例应用程序?” 然后提取文件,重新启动,并完成设置,我不得不使用一些技巧,这可能对上面的用户有所帮助。

1:像往常一样创建 SFX > TempMode,所以你有“安装示例应用程序?” 盒子。

2: Setup=xCopy > 使用 xcopy cmd 将文件复制到所需目录

3:设置=示例应用程序

通过将文件复制到新位置,它们不会在 SFX 关闭后被删除。


替代解决方案#2

确定您希望将文件提取到的位置。示例:%TMP%\Folder\App.exe

创建 TempMode SFX “安装示例应用程序?” 安装程序=%TMP%\文件夹\App.exe

创建包含文件的新 SFX + TempMode SFX Path=%TMP%\Folder\TempMode SFX.exe

运行 SFX >“安装示例应用程序?” 出现 > 如果“是”,应用程序运行。


替代解决方案3:

还有一种方法是创建 Path= SFX,打包成 TempMode SFX 方法,但这会导致包被解压到 %TMP%,然后将文件解压到选定的位置,或者双重解压。

这也可以,但方法 2 可以更好地工作,只需预先考虑和计划您想要提取文件的位置。

希望这可以帮助!

于 2016-08-26T21:56:11.667 回答
0

在对话框高级 SFX 选项的选项卡模式上按下按钮帮助后打开的帮助页面包含该段落

如果设置了解压到临时文件夹选项,您还应该指定安装程序。SFX 在此模式下会忽略Path 以提取参数。

原因很简单,并在本段上方的帮助中进行了解释。通过将存档解压缩到临时文件夹,调用的安装应用程序(*.exe、*.bat、...)负责将文件复制到安装文件夹。

但是,如果您希望 WinRAR SFX 将存档直接提取到预定义的文件夹中,并且您希望用户可以在开始提取之前取消安装:

  1. 不要使用Unpack 到选项卡Modes上的临时文件夹
  2. 而是在标签General上设置Path to extract
  3. 在选项卡模式上选择全部显示
  4. 在Update and Overwrite all files选项卡上选择提取和替换文件提取和更新文件。
  5. 在选项卡上为用户输入有用的文本编辑字段中的文本和图标要在 SFX 窗口中显示的文本,其中包含相关信息,以便用户可以决定何时按下按钮提取安装 以及何时按下按钮取消执行 SFX档案。

另一种可能性是在“许可”选项卡上输入标题和问题文本作为许可文本,从而执行 SFX 存档,首先显示对话框,“许可文本”现在是带有按钮AcceptDecline的问题。

您拥有的第三种可能性是创建一个您想要使用不同名称的 SFX 副本,并使用免费资源黑客之类的工具来根据您的需要自定义此 SFX,即更改图标、位图、按钮文本和对话框中的位置,对话框的大小等。这是明确允许的,因为您可以在带有标题GUI RAR 和 ZIP SFX 模块(Default.SFX 和 Zip.SFX)的页面上阅读WinRAR的帮助。例如,您可以重新定义许可证对话框的布局,使其看起来类似于带有“是”和“否”按钮的问题消息在您自定义的 SFX 中。我将此解决方案用于 2 个使用 WinRAR SFX 存档安装/更新的应用程序,使用 Resource Hacker 创建这样的自定义 SFX 真的很容易。

于 2015-03-14T11:17:59.767 回答
0

要创建提取包并保留问题框功能:

1:根据需要创建提取包。

2:使用WinRar,编辑注释文件添加TempMode="Run App?","Example Title"

示例:TempMode="Install MyApp?","Vista ◦ MyApp 2.0 ◦ x32/64"

于 2016-04-17T07:18:43.907 回答