如何使用 Inno Setup 创建一个安装程序来提取 .rar 存档的内容?

2023-12-12

我想在 Inno Setup 中创建一个安装程序,它提取预先创建的内容Data.rar档案。我的意思是它应该将 rar 存档的内容视为应用程序的文件和文件夹。


通过 Inno Setup 使用外部提取实用程序的通用方法:

  • 创建档案
  • 将存档嵌入到安装程序中
  • 嵌入一​​个可以将存档提取到安装程序的工具
  • 让安装程序将存档和工具提取到目标计算机上的临时位置 -{tmp}
  • 让安装程序运行工具来提取存档

[Files]
Source: "UnRAR.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
Source: "Data.rar"; DestDir: "{tmp}"; Flags: deleteafterinstall nocompression 

[Run]
Filename: "{tmp}\UnRAR.exe"; Parameters: "x ""{tmp}\Data.rar"" ""{app}"""

如果您想显示解压进度,则必须解析 UnRAR 输出。有关示例(在 Arc 上),请参阅如何将.arc解压添加到Inno Setup?

Or use UnRAR.dll,类似于unarc.dll用于Inno Setup - 如何在解压页面添加取消按钮?


请注意,UnRAR.exe该工具是免费的,可用于这些目的。其摘录license.txt:

  1. UnRAR 实用程序可以自由分发。是允许的 在其他软件包中分发 UnRAR。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Inno Setup 创建一个安装程序来提取 .rar 存档的内容? 的相关文章

  • 将用户定义的命令行参数添加到/?窗户

    使用 Inno Setup 可以添加用户定义的命令行参数 当我使用 HELP命令中未列出用户定义的参数 如何将带有描述的命令添加到 HELP window Inno Setup 6 0 支持HelpTextNote message http
  • “ProgramData”目录的 Inno 设置常量

    我希望我的安装程序将一些文件复制到 Windows 中ProgramData目录中 我看到大多数 Windows 目录都有已在 Inno Setup 文档中定义的预定义常量 但是我看不到一个ProgramData 因此我计划使用类似的东西
  • 根据用户输入更改 AppID 和 AppName

    我想在同一系统上多次安装同一应用程序 例如两个用户使用两个不同的 Web 服务 每个都有自己的 在我的设置脚本中我想更改AppID and AppName基于用户的输入 例如我的默认值AppName Service App 应该改为AppN
  • 使用 wmi win32 类检查可用端口?

    我正在使用 inno setup 来制作安装文件 它需要提取本地 IP 地址 我可以通过查询 Win32 NetworkAdapterConfiguration 来完成 并检查特定端口是否打开以供软件运行 我目前正在寻找答案 我意识到 WM
  • 如何使用 Inno Setup 检查互联网连接

    我正在学习 Inno Setup 来制作一个简单的安装程序 在安装过程中我需要从网站下载文件 因此检查是否有互联网连接很重要 在安装过程中如何检查或采取一些警报以连接互联网 Thanks 最好的检查是尝试实际下载该文件 互联网 几乎不是一个
  • 如何将带有值的命令行参数传递给 Inno Setup 编译器,以便我可以在代码中使用它们?

    我有两种可能的构建选项 由于我不希望我的客户使用某些参数启动安装程序 因此我最好将它们传递给编译器并在我的代码中完成所有工作 假设我有变量UNION它可能有两个值 0 and 1 我必须在代码中分析该变量的值 并根据结果包含或不包含某些文件
  • 安装程序启动时间长 - 在 wpWelcome 之前添加对话框?

    我使用 Inno Setup 创建的安装程序大小约为 850 MB 包含约 7000 个文件和 890 个文件夹 未压缩大小为 1 98 GB 当开始安装过程时 之后Windows UAC 对话框出现后 安装程序的图标为空Taskbar约
  • 如何从 [Code] 部分中止 /VERYSILENT 模式下的 Inno Setup 安装?

    我正在尝试从以下位置启动某个 Windows 服务 Code 部分 在AfterInstall处理程序 当它无法启动时 我想回滚安装 通常 当从 UI 运行安装程序时 WizardForm Close 做对了工作 但是当安装程序执行时 ve
  • 如何在 Inno Setup 中使用 GetVolumeInformation?

    我需要在使用 Inno Setup 创建的安装过程中获取驱动器号的卷序列号 我知道 DLL 函数可以导入到 Inno 中 但我对它还很陌生 并且在使其工作时遇到一些问题 我知道 kernel32 中的 GetVolumeInformatio
  • 安装日志文件丢失

    我制作了一个脚本 其中包括 Setup SetupLogging yes 但我找不到日志文件 好像没有被创建 它可能在哪里 可以指定我想放置它的位置吗 您可以通过设置指定日志文件的路径命令行参数 所以要记录例如到C FileName log
  • Inno Setup 选择一个目录来安装预定义集中的文件

    在这种情况下 我需要将文件安装到特定目录 但在不同的计算机上它可能位于不同的文件夹中 所以我需要检查哪个是正确的 例如 我有一个文件 需要将其安装在A文件夹或B文件夹或C文件夹 取决于计算机有A or B or C 所以我需要先检查一下计算
  • 有没有办法在完成某个页面后在 Inno Setup 中提取 .zip 文件?

    所以我基本上有一个 zip 文件 tmp 目录 并希望将其内容提取到 tmp 但只有当我的第三种形式完成它的工作时 而不是更早 原因是 因为在第三种形式中我从互联网上下载了这个 zip并将其保存到 tmp 现在 在此之后我想将这些文件提取到
  • 使用 inno setup 安装时检查可用端口

    我正在尝试在 inno setup 中创建以下功能 用户被要求输入他们希望我的应用程序进行通信的端口 一旦他们进入端口 他们就可以点击检查按钮 此检查按钮将运行一些代码来查看安装计算机上的端口是否可用 到目前为止 我可以为用户创建输入框来输
  • 在 Inno Setup 中实现脚本常量时出现“预期标识符”或“原型无效”

    因此 鉴于此功能 我在GetRoot ROOTPage Values 0 线 我希望它告诉我ROOTPage没有定义 const DefaultRoot C IAmGRoot Var ROOTPage TInputQueryWizardPa
  • Inno Setup:允许用户只选择可以安装软件的驱动器?

    我可以允许用户只选择要安装软件的驱动器吗 例如 他们可以选择C or D drive C Software D Software 但用户不能指定任何其他内容 就像他们不能选择安装下面的软件一样Downloads or MyDocumnets
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • Inno 安装脚本中的 HTTP POST 请求

    我想通过 POST 将 Inno 安装过程中从用户收集的一些信息提交到我们的服务器 明显的解决方案是包含一个 exe 文件 安装程序会将其提取到临时位置并使用参数启动 但是 我想知道 有没有更简单 更好的方法 基于 jsobo 使用建议Wi
  • Inno Setup - 如果计算机上已安装应用程序,如何在安装时显示通知消息?

    我是 Inno Setup 的新手 我正在使用 Inno Setup compiler 5 1 6 为我的 C 应用程序创建一个安装程序 使用我的脚本创建了安装程序 并且运行良好 它会安装该应用程序 也可以从控制面板卸载 但我的问题是 如果
  • 使用 InnoSetup 创建 NLog 日志文件文件夹

    我遇到一个问题 我需要我的用户能够在没有管理员权限的情况下运行我的应用程序 但同时 我需要 NLog 能够创建它的日志文件 它需要管理员权限才能在应用程序安装在同一文件夹中 我正在尝试在应用程序目录下创建一个目录 名为Logs 并给ever
  • 如何在“PrepareToInstall”期间显示进度?

    我正在开发的安装程序的大部分工作是在PrepareToInstall功能 因为我需要做的一切都可能失败 因此这是处理这些事情的适当位置 以防它们失败 通过在函数结果中传递错误消息 可以自动报告任何失败 安装程序实际复制的只有 3 个小文件

随机推荐

  • Android API 23 删除的包

    org apache http 的最佳替代品是什么 因为他们在 Android API Differences Report 中这么说 删除了 API 23 中的软件包 org apache commons logging org apac
  • 在 Visual Studio Code 中是否有在同一组内移动选项卡的快捷方式?

    我无法找到将活动选项卡移动到同一组内 而不是移动到其他组中 的快捷方式 这将允许更改该组中选项卡的顺序 Move Editor Left Ctrl Shift PageUp Move Editor Right Ctrl Shift Page
  • 安卓屏幕分辨率

    我正在开发一个分辨率为 320x240 的 Android 应用程序 我想使用同一个应用程序来获得更高的分辨率是否可能 或者我必须为每个分辨率设计 UI 按照此链接中的指南 缩放您的应用程序以支持不同的屏幕分辨率 http develope
  • Keras减肥

    我的模型有两个输出层 年龄和性别预测层 我想为每个输出层的损失分配不同的权重值 我有以下代码行来执行此操作 model compile loss losses mean squared error losses categorical cr
  • 为什么 FormsAuthentication 的 requireSSL 属性默认为 false!

    注意 这不是与 RequireSSL 属性相关的 ASP NET MVC 问题 那是完全不同的 只是名字相同 ASP NET Forms 身份验证具有需要SSL属性要求 ASP NET 成员资格的身份验证 cookie 只能通过 SSL 发
  • Delegate.Invoke 和 Delegate() 之间的区别

    delegate void DelegateTest DelegateTest delTest 打电话有什么区别delTest Invoke and delTest 两者都会在当前线程上执行委托 对吗 The delTest form 是一
  • 如何使用决策者终止 Spring Batch Split Flow 中的步骤

    我在 Spring Batch 中遇到了以下设计缺陷 步骤必须具有 Next 属性 除非它是最后一个步骤或拆分流的最后一个步骤 Decider 块必须处理 Decider 返回的所有情况 因此 在 Split Flow 中 最后一个 Ste
  • 捆绑了依赖项的 JavaFX jar

    我刚刚提出了一个关于使用javafxpackager制作JavaFX jar的问题 你可以看看here 我的问题是我无法在清单中包含类路径 好吧 当我等待答案时 我尝试了maven antrun plugin反而 它工作得很好 我可以使用依
  • 如何获取struts标签中的JSP scriptlet值

    这是我的代码 如果我执行以下操作 我将不会获得该值
  • 管道“cd”或“popd”输出会阻止更改目录吗?

    我明白 自从 为命令启动一个新进程after管道 任何形式的 shell 命令cmd cd newdir where cmd不更改当前工作目录 将保持原始进程的工作目录不变 更不用说这有点愚蠢了 因为cd不从 stdin 读取输入 但是 在
  • Google Apps 脚本按钮:我可以分配未附加到工作表的“全局”脚本吗?

    我有一个脚本 想将其分配给多个不同电子表格上的按钮 如果我在电子表格上创建一个按钮并引用存储在 Google 驱动器上另一个父文件夹中的脚本 我会收到错误Script function myScript could not be found
  • @autoreleasepool 没有 ARC?

    我是 Xcode 4 2 的新手 还没有完全熟悉 ARC 然而 我确实读到 autoreleasepool 取代了自动释放池的手动使用 并在幕后做了一些特殊的魔法来与 ARC 很好地配合 然而 当我在 Xcode 4 2 中启动一个新项目时
  • 同步动态加载 JavaScript

    我正在使用模块模式 我想做的一件事是动态包含一个外部 JavaScript 文件 执行该文件 然后在return 我的模块 我不知道如何轻松做到这一点 是否有执行伪同步外部脚本加载的标准方法 function myModule var ta
  • 奥利奥:广播接收器不工作

    每当用户拨打新电话时 我试图在我的应用程序上获取通知触发器 我正在我的活动中注册接收器并在 onDestroy 方法中销毁它 以下是注册的代码片段 registerReceiver inComingCall new IncomingCall
  • 在 JavaScript 中序列化/反序列化对象的最佳方法?

    我的应用程序中有许多 JavaScript 对象 例如 function Person age this age age this isOld function return this age gt 60 before serialize
  • 获取 API post XML 请求错误

    我没能做到fetch发布请求 它返回一个400 bad request error fetch http 192 168 1 6 49152 ctl RenderingControl method POST headers SOAPActi
  • 箭头函数比 v8 中的普通独立函数声明更快(性能更高、更轻)吗?

    我问这个问题是因为我和我的同事在编码风格上存在争议 因为他更喜欢箭头函数声明 const sum a b gt a b 我更喜欢旧式的独立函数声明 function sum a b return a b 我的观点是 旧式代码更具可读性 您可
  • 下载进度状态,从 Google 云端硬盘下载文件时?

    我可以从 Google 云端硬盘下载文件 但我想知道下载进度 谁能告诉我该怎么做 我已经尝试过这样下载文件 NSString downloadURL self driveFiles objectAtIndex indexPath row d
  • 源文件与构建模块时不同

    这真让我抓狂 我有一个相当大的项目正在尝试修改 我早些时候注意到当我输入时DbCommand Visual Studio没有对其进行任何语法高亮 我正在使用usingSystem Data Common 尽管没有突出显示任何内容 该项目似乎
  • 如何使用 Inno Setup 创建一个安装程序来提取 .rar 存档的内容?

    我想在 Inno Setup 中创建一个安装程序 它提取预先创建的内容Data rar档案 我的意思是它应该将 rar 存档的内容视为应用程序的文件和文件夹 通过 Inno Setup 使用外部提取实用程序的通用方法 创建档案 将存档嵌入到