当 Inno Setup 安装失败时(在安装程序本身内)如何调用 exe?

2023-12-14

我已经使用 Inno Setup 几个月了,但我正在努力寻找如何从安装程序本身内部检测到会导致 Inno Setup 以非零退出代码结束的错误。

我考虑过使用CurStepChangedssDone一步,甚至DeinitializeSetup,但我找不到如何访问向导的退出代码。

我错过了什么?一定有办法做到这一点...

我想知道是否出现任何问题,以便我可以在计算机上启动回滚过程。您提出的答案起到了作用。


您无法从 Pascal 脚本中找到安装程序退出代码。


如果您想检测安装程序是否失败,请记住是否CurStepChanged被称为ssDone并测试一下DeinitializeSetup.

var
  Succeeded: Boolean;

procedure DeinitializeSetup();
begin
  if Succeeded then
  begin
    Log('Installation succeeded');
  end
    else
  begin
    Log('Installation failed');
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssDone then
  begin
    Succeeded := True;
  end;
end;

存在边缘情况,当ssDone即使安装程序失败,也会使用。

例如,由于计算机未重新启动以完成先前的安装而失败。在这种情况下CurStepChanged不被调用ssPostInstall。因此,如果这种情况可能发生在您的安装程序中,您可能需要检查这两个步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 Inno Setup 安装失败时(在安装程序本身内)如何调用 exe? 的相关文章

  • InnoSetup:不卸载更改的文件

    如何告诉 InnoSetup 不要卸载已被用户更改的 文本 文件 与 InnoSetup 安装的文件不同 或者可能更困难 在现有版本上安装新版本时 InnoSetup 应该询问用户是否覆盖更改的文件 但在纯粹卸载时 它应该在不询问的情况下卸
  • 在 Inno Setup 中实现脚本常量时出现“预期标识符”或“原型无效”

    因此 鉴于此功能 我在GetRoot ROOTPage Values 0 线 我希望它告诉我ROOTPage没有定义 const DefaultRoot C IAmGRoot Var ROOTPage TInputQueryWizardPa
  • 退出失败设置错误代码

    我有一个 C Windows 程序无法设置退出代码 该程序非常复杂 我目前无法通过简单的测试用例重现该程序 我确实知道该程序调用exit 1 因为我在那一行有一个断点 在我跨过它之后 调试器 VS2010 立即打印The program p
  • Windows 任务计划程序报告不正确/不一致的结果代码

    背景 我正在尝试在计划任务失败时收到电子邮件通知 我的任务可以通过退出代码 错误级别 指示失败 我想使用它并遵循中描述的过滤方法这个答案 https stackoverflow com a 4289360 29805触发电子邮件 Probl
  • Inno Setup:仅在不是 VERYSILENT 的情况下安装

    仅当安装程序未以非常安静的方式运行时 我才想安装并注册某个文件 我不知道我怎样才能做到这一点 我当前的线路是 Source M sqlite36 engine dll DestDir sys Flags uninsneveruninstal
  • Vista幻影目录

    我们有一个程序 安装程序会检查配置文件是否存在 如果存在 它不会复制该文件 它假设用户已修改其配置文件并希望保留这些修改 不幸的是 这是一个 Vista 之前的应用程序 它将配置文件保存在 Program Files 中 问题是 如果你在重
  • 安装后执行批处理文件,并在 Inno Setup 中“完成”页面之前的自定义页面上显示其输出

    A cmd使用此解决方案可以在 Inno Setup UI 中显示输出 Inno Setup 安装程序中的嵌入式 CMD 在自定义页面上显示命令输出 https stackoverflow com q 56910906 850848 我的问
  • 使用 Inno Setup 更快地创建安装程序

    当我在大量文件 gt 2GB 上运行 Inno Setup 时 需要很长时间才能运行 我相信它把时间花在了压缩上 这应该是 CPU 限制的 但它只使用了几个 CPU 有没有办法将其分散到 许多 更多核心 具体来说 我正在处理这个提升发布存储
  • Inno Setup 安装程序的文本编码错误

    对于某些 Windows 安装 我的安装程序 Inno Setup 的俄语文本编码很差 所有机器都安装了Windows XP SP3 英文版 但有些机器可以运行 有些机器则没有 Windows 上有什么设置可以解决这个问题吗 Thanks
  • 如何获取已退出的 docker 容器的数字退出状态?

    当容器退出时 docker ps a显示其退出代码 滚动 docker run ubuntu bash c exit 1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2c76
  • Inno Setup - XML 编辑 XPath 请求失败,并出现“运行时 NIL 接口异常”

    我已经为我的应用程序创建了一个 Inno Setup 脚本 其中我尝试在安装后步骤中编辑一些 XML 配置 主要是连接字符串 我有一些非常简单的 XPath 请求 但在使用时出现运行时异常selectSingleNode然而getEleme
  • Inno Setup中如何处理带空格的路径?

    我想允许带有空格的路径 例如program files 当使用 Inno Setup 安装我的程序时 但是 带有空格的路径会让我安装的服务崩溃 Inno 安装文件如下所示 Setup AppName Demo DefaultDirName
  • 在 Inno Setup 中安装之前使用 [Code] 更改 AppId

    在设置中 我为用户提供使用单选按钮安装 32 位或 64 位版本的选项 然后我想附加 32 or 64 to the AppId 我知道我可以改变AppId使用脚本常量 但在安装程序启动时调用所需的函数 但此时单选按钮尚不存在 因此我收到错
  • 将用户填写的表单添加到 Inno Setup

    我想添加一个小表格 由用户在程序安装时使用 Inno Setup 填写 然后需要将该表格和预定义的电子邮件地址通过电子邮件发回给我 该表格需要在几个领域中使用 例如 用户名 Address Email 电话号码等 一旦我有了一个例子 我希望
  • 如何在“PrepareToInstall”期间显示进度?

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

    我有一个 C 代码 有时会自行分叉 每个分叉都会执行一些操作 然后返回一个错误代码 目前 每个子进程返回其 ID 0 n void other int numero exit numero int main for int i 0 i lt
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 无法让 DelTree 删除 Inno Setup 中的文件夹

    我有一个程序DeleteTransferFolder在安装过程中使用 Inno Setup 中的 BeforeInstall 调用它 我知道该过程被调用 因为我显示了几条 MsgBox 消息 但DelTree不会删除指定的文件夹和子文件夹
  • 在这些情况下限制破折号的正则表达式模式

    Scenario 我正在使用第三方文件重命名软件 该软件是用 Delphi 编写的 并且具有 pascal 脚本支持 该应用程序允许使用正则表达式来重命名文件 这意味着 如果我需要对文件名执行的操作不能仅使用一个正则表达式来完成 那么我可以
  • 让 ISSkin 与最新的 Inno Setup Unicode 配合使用

    我是第一次尝试ISSkin http isskin codejock com 使用 Inno 设置 我想尝试一下黑色风格 所以我尝试了他们的示例 Setup AppName ISSkin Example AppVersion 1 0 0 2

随机推荐

  • 如何在 Python 中创建 mdb 数据库文件?

    我想用 Python 在 Windows 中创建一个 mdb 数据库文件 但似乎无法用 Python 文档弄清楚它 我读到的所有内容都与建立连接以及如何使用光标有关 有什么想法吗 谢谢 我的经验comtypes模块已经相当不错了 然而 您可
  • 使用 seq() 和 rep() 迭代数字

    我需要使用rep and seq 得到以下向量 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 通常我只会使用for声明来实现这一点 但我被限制使用它 只能使用rep and seq 来实
  • 添加新的核心数据模型版本后出错

    我添加了一个新的模型版本 并将核心数据模型设置为使用该新版本 但当应用程序尝试启动时出现此错误 用于打开持久存储的托管对象模型版本与用于创建持久存储的版本不兼容 我猜问题是当前的持久存储是模型的旧版本 有没有办法直接删除它 然后再创建一个新
  • Three.js r125 BufferGeometry`顶点`不存在

    我正在更新 Three js 我发现当我升级到 r125 时 尝试设置vertices由于缺少方法 BufferGeometry 失败 似乎也已删除verticesNeedUpdate The 迁移指南似乎没有对此发出警告并且变更日志据我所
  • Team Foundation Server 2010 不支持我的 .tfignore 文件

    这是我的 tfignore 它位于分支的根目录中并提交给 TFS 但它永远不会受到尊重 我想我错过了一些我在阅读中不清楚的语法细节TechNet 有关 tfignore 文件的文章 但是什么 Team Foundation Server S
  • PHP:使用 php 邮件程序发送 ical

    我正在尝试使用 php 邮件程序发送 ical 这是我的功能 function sendIcalEmail firstname lastname email meeting date meeting name meeting duratio
  • 创建谷歌日历事件

    我正在尝试使用下面给出的代码创建谷歌日历事件 但我得到了类 Event not found 如何创建新事件 请帮忙
  • C - 防止在块作用域中使用相同的变量名

    我继承了一些代码 我将对其进行重构 这些代码在不同范围内广泛使用具有相同名称的多个变量 即 int test 456 int main void int test 0 for i 0 i
  • 使用 python 进行 Modelica 参数研究

    我想使用 python 在不同的 modelica 建筑库 建筑物 IDEAS 中运行参数研究 例如 更改渗透率 我尝试过 simulateModel和simulateExtendedModel zone n50 value 我的问题 为什
  • Microsoft Sql Server Management Studio 备份大小变为负值

    问题是我需要解释工厂中数据库的不同大小的备份 有时 即使没有从系统中删除数据 大小之间的差异也是负数 Datum Backupfile file Size KB Diff 6 1 10 backup201006010100 bak 3355
  • 如何配置 HttpClient 在收到 301 HTTP 状态代码时不自动重定向?

    考虑一个重定向的 ASP NET Web API 服务 public class ThisController ApiController more methods public override HttpResponseMessage P
  • MPI任务调度

    我想使用 MPI 开发一个任务调度程序 其中有一个主处理器和多个工作 客户端处理器 每个工作进程都拥有计算所需的所有数据 但从主进程获取要处理的索引 计算完成后 worker 返回一些数据给 master 问题是有些进程会很快 有些会很慢
  • chm 文件支持哪些 css 版本?

    我正在编写一个样式表以与我的编译帮助文件一起使用 看起来 CSS2 通常可以工作 但我不确定 CSS 选择器 例如 gt and CHM 格式是否等同于 IE 7 fwiw 我正在 Windows 7 上进行创作 并且安装了 IE9 在 W
  • 测试 Jasmine 被拒绝的承诺

    在我使用 AngularFire2 的 Angular2 应用程序中 我有一个AuthService它尝试使用 Firebase 进行匿名身份验证 我正在尝试编写一个期望的测试AngularFireAuth s signInAnonymou
  • 通过纯 JS 缩小图像尺寸会导致图像尺寸膨胀(以字节为单位)

    我是一名服务器端开发人员 正在学习客户端操作的诀窍 从纯 JS 开始 目前我正在使用纯 JS 来调整通过浏览器上传的图像的尺寸 我遇到了缩小 1018 x 1529 尺寸的情况 jpg文件大小为 400 x 601 jpeg正在生成一个更大
  • 使用 Apps 脚本检测 Google 电子表格中的背景颜色变化

    我创建了一个onEdit 在 Google App Script 中触发 但仅当我更改单元格的值时才有效 当我改变背景颜色时就不会了 我该如何修复它 注意 有一个关于 onChange e 的未决问题报告它不起作用 看Google 脚本 o
  • 如何在 Shinydashboard R 中仪表板标题的中心显示图像?

    我有以下代码 可以制作一个简单的闪亮应用程序 library shinydashboard library shiny ui lt dashboardPage dashboardHeader title tags img src https
  • 在 Python 中的装饰器中重新分配参数

    考虑一个带有参数的简单 Python 装饰器 def decorator factory a None def decorator func def wrapper args kws return func args kws a retur
  • SAS Azure 签名不匹配

    我尝试在 php 中为 azure 存储上的 blob 创建 SAS 我编写以下代码 key end date Y m d TH i s Z strtotime 1 day function getSASForBlob accountNam
  • 当 Inno Setup 安装失败时(在安装程序本身内)如何调用 exe?

    我已经使用 Inno Setup 几个月了 但我正在努力寻找如何从安装程序本身内部检测到会导致 Inno Setup 以非零退出代码结束的错误 我考虑过使用CurStepChanged与ssDone一步 甚至DeinitializeSetu