在安装过程中使用 Inno Setup 删除未随 Inno Setup 安装的其他应用程序

2024-01-14

我有一个旧的 VB6 应用程序,它是使用非常旧的 16 位版本的 InstallShield 部署的。我已经使用 Inno Setup 创建了一个新的安装程序,以便通过更新对我的 VB6 应用程序进行 64 位友好。

我的所有用户都已安装现有的 InstallShield 版本。目前,我的 Inno Setup 正在运行。问题是,我不想覆盖旧的 InstallShield 安装文件,因此我的 Inno Setup 安装到另一个目录。这会导致问题,因为现在我安装了两个版本,有两个单独的图标。

当我安装新的 Inno Setup 版本时,我需要一种方法来调用旧 InstallShield 应用程序的卸载程序。如何通过 Inno Setup 从 Windows 添加/删除程序调用卸载程序?如果我重复使用 InstallShield 版本的应用程序 ID 与 Inno Setup 相同,然后手动删除旧文件,这样可以吗?


您必须找到 InstallShield 卸载注册表项,该注册表项将驻留在以下任一位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ or HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\然后执行它的UninstallString价值。完成后,删除注册表项:无法在 Inno Setup 中重复使用相同的项,因为它总是会追加_is1给你的AppId生成卸载注册表项名称。此外,在较旧的 Windows 版本上,由于长度限制,它还可能会截断此密钥名称并附加校验和。

做这一切从PrepareToInstall事件函数。

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

在安装过程中使用 Inno Setup 删除未随 Inno Setup 安装的其他应用程序 的相关文章

  • 使用自定义操作卸载多个产品

    我正在为我们的产品开发基于 WIX 的安装程序 该产品有一个基础产品和许多插件 基础版和插件将作为单独的 MSI 提供 仅当底座可用时才能安装插件 基础和插件在根文件夹下共享公共文件夹树 例如 C Program files MyProdu
  • ISCC - /D 编译器参数似乎没有效果

    我正在尝试使用 Inno Setup 命令行编译器的 D 参数来选择哪些文件应包含在我的设置中 代码如下所示 define MyAppName MyApp define MyAppVersion 1 0 0 define PHASE Set
  • 如何在 Inno Setup 中使用 GetVolumeInformation?

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

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

    我正在尝试在 inno setup 中创建以下功能 用户被要求输入他们希望我的应用程序进行通信的端口 一旦他们进入端口 他们就可以点击检查按钮 此检查按钮将运行一些代码来查看安装计算机上的端口是否可用 到目前为止 我可以为用户创建输入框来输
  • 如何将参数传递给用 C# 编写的托管代码 dll 的自定义操作?

    我有一个要求 必须将 3 个参数传递给 C 代码 以便在 installshield 中执行托管代码自定义操作 给不了代码啊请有人帮助我 即使是基本的方法 提前致谢 既然您提到了自定义操作 请参阅在程序集自定义操作中指定托管方法的签名 ht
  • InnoSetup:不卸载更改的文件

    如何告诉 InnoSetup 不要卸载已被用户更改的 文本 文件 与 InnoSetup 安装的文件不同 或者可能更困难 在现有版本上安装新版本时 InnoSetup 应该询问用户是否覆盖更改的文件 但在纯粹卸载时 它应该在不询问的情况下卸
  • Inno Setup:允许用户只选择可以安装软件的驱动器?

    我可以允许用户只选择要安装软件的驱动器吗 例如 他们可以选择C or D drive C Software D Software 但用户不能指定任何其他内容 就像他们不能选择安装下面的软件一样Downloads or MyDocumnets
  • Inno Setup 代码部分创建隐藏文件

    我正在处理 Inno Setup 项目 该项目正在使用SaveStringToFile函数在 Code 部分 我想将此文件设置为隐藏系统文件 但我无法找到有关如何实现此操作的信息 有任何想法吗 Inno Setup Pascal Scrip
  • 安装后执行批处理文件,并在 Inno Setup 中“完成”页面之前的自定义页面上显示其输出

    A cmd使用此解决方案可以在 Inno Setup UI 中显示输出 Inno Setup 安装程序中的嵌入式 CMD 在自定义页面上显示命令输出 https stackoverflow com q 56910906 850848 我的问
  • 欢迎页面未显示,SelectDir 页面首先显示

    我正在尝试使用 Inno Setup 来制作安装程序 我想先显示欢迎页面 然后显示 SelectDir This is CurPageChanged示例代码 procedure CurPageChanged CurPageID intege
  • 使用 Inno Setup 更快地创建安装程序

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

    我有一个需要 NET 4 0 才能运行的组件 我的 Inno Setup 安装程序如何验证它是否已安装 如果没有 则提示用户安装它 The InitializeSetup运行 Inno Setup 可执行文件时调用该函数 为自定义脚本插入此
  • 在 Inno Setup 中使用 {AppVersion} 作为函数的参数

    所以我有一个正在更新一些 XML 的函数 我想传递 AppVersion 已设置在 Setup 脚本的一部分作为该函数的常量 我努力了 MyFunction ExpandConstants AppVersion 但这给了我一个错误 如何正确
  • 使用 Inno Setup 中格式化(部分粗体)的文本制作安装程序?

    有人看过 GOG com 游戏安装程序吗 如何制作像这样的欢迎文本字符串 包括单个标题中的路径和需要大小 其中部分内容加粗 以下是修改安装路径后如何更改字符串换行的示例 您可以使用TRichEditViewer http www jrsof
  • WIX 工具集 - 自定义操作命令无法正确检测 Windows 10 版本

    我有一个安装程序 可以部署并运行单独的 exe文件以将驱动程序部署到系统 不幸的是 微软似乎已经放弃了对VersionNTWindows 10 及更高版本中的宏 所以我实施了另一篇文章中建议的方法 https stackoverflow c
  • Inno Setup中如何处理带空格的路径?

    我想允许带有空格的路径 例如program files 当使用 Inno Setup 安装我的程序时 但是 带有空格的路径会让我安装的服务崩溃 Inno 安装文件如下所示 Setup AppName Demo DefaultDirName
  • Inno Setup 编译失败,并显示“未指定必需参数“Root”。”即使有一个

    我是 Inno Setup 的初学者 我想创建一个安装程序 它复制两个 exe 文件并向 PATH 环境变量附加一个值 特别是我必须复制两个可执行文件 称为 pandoc exe 和 pandoc citeproc exe 这两个文件是我之
  • Inno Setup - 在文件复制之前正确停止服务

    我们的安装过程包括一个 Windows 服务 如果我们的软件配置为作为服务器安装 相对于客户端安装 则会安装该服务 我添加了服务库 http www sandon it files services unicode iss为了能够管理服务
  • 完全删除使用“go get”安装的软件包?

    我正在使用 Go 1 13 1 最新版本 我正在尝试完全删除我安装的软件包go get来自 GitHub 这go clean i

随机推荐

  • 如何在 Bash 中隐藏命令输出

    我想让我的 Bash 脚本对最终用户来说更加优雅 Bash 执行命令时如何隐藏输出 例如 当 Bash 执行时 yum install nano 执行 Bash 的用户将看到以下内容 Loaded plugins fastestmirror
  • Apache TOMCAT 上的 Ember-CLI

    我正在尝试在 Apache tomcat 上加载 ember cli 内置服务器应用程序 我使用以下命令在生产模式下构建了我的应用程序 ember build 环境制作 我把文件移到了我的 dist文件夹到我的 apache tomcat
  • setInterval和clearInterval,如何只运行1次?

    我只想运行该函数 1 次 timerA setInterval function codes clearInterval timerA 2000 我只想调用 setInterval 内的函数 1 次 我该如何使用 setInterval 和
  • 添加新 UIWindow 时以编程方式隐藏状态栏?

    当显示我自己的自定义警报时 我目前正在向我的应用程序添加一个新的 UIWindow 在添加此 UIWindow 之前 我的应用程序隐藏了状态栏 但现在它是可见的 如何在这个新窗口中以编程方式隐藏状态栏 我已经尝试了一切 但它不起作用 这就是
  • (在哪里)clang 是否记录了实现定义的行为?

    C 中实现定义的行为是未指定的行为 每个符合要求的实现都必须记录其选择 我很容易找到 gcc 的此类文档here https gcc gnu org onlinedocs gcc 5 3 0 gcc C Implementation htm
  • 无法从 RTCPeerConnection 获取 IP V4 地址 - chrome

    我需要从 Web 应用程序获取客户端本地 IP 地址 为此 我使用标准 RTCPeerConnection 实现来获取 但是返回的ice候选并不携带IP V4地址 而是一个看起来像guid的地址 asdf xxxx saass xxxx l
  • 如何让我的 Perl 脚本对子进程使用多个核心?

    我正在研究一个数学模型 该模型使用 XFOIL 生成的数据 XFOIL 是一种流行的航空航天工具 用于查找机翼的升力和阻力系数 我有一个 Perl 脚本 它使用不同的输入参数重复调用 XFOIL 以生成我需要的数据 我需要 XFOIL 运行
  • 使用ansible playbook执行curl -X

    我想使用 ansible playbook 执行下一个命令 curl X POST email protected cdn cgi l email protection H Content Type application json htt
  • SQL Server 的 LIMIT 和 OFFSET 等效吗?

    在 PostgreSQL 中有Limit and Offset关键字将允许非常轻松地对结果集进行分页 SQL Server 的等效语法是什么 SQL Server 2012 中现在可以轻松实现此功能 从 SQL Server 2012 开始
  • 将 mysql 值赋给变量 inline

    为什么这不起作用我试图获取之前和当前的值来计算百分比变化 我正确地得到了两个值 但现在我如何重用它们来进行数学运算 当我尝试下面的命令时我得到 错误 1054 42S22 字段列表 中存在未知列 currentVal SELECT IFNU
  • 构建有关使用 Sun 专有 API 的警告

    我正在尝试清理我的构建环境 并发现了一些关于使用 Sun 专有 API 的警告 javac workspace
  • 为什么谷歌主页使用 (0, obj.func)(args) 语法?

    有时我盯着google com主页提供的js 发现他们倾向于使用 0 obj func args 句法 以下是脚本的摘录 var function var window this try mb function a return 0 win
  • 直到达到停止值为止的骰子数量

    我正在尝试计算骰子掷出的次数 直到达到明确的停止值 例如 我希望停止值为 100 我正在编写以下代码 sumofsides lt function stopvalue totalsum lt 0 while totalsum lt stop
  • Fabric.js 使用旋转手柄将旋转限制为 x 度

    我正在使用 Fabric js 并尝试使用旋转手柄允许画布上的任何对象旋转 不是自由 360 度 而是一次只能旋转 15 度 我非常努力地搜索 但到目前为止找不到答案 这可能吗 更短的解决方案 canvas on object rotati
  • ionic 4 - 添加插件时未捕获类型错误

    我创建了一个离子项目 版本 4 0 6 添加插件 cordova plugin x socialsharing 后出现以下错误https beta ionicframework com docs native social sharing
  • Phalcon PHP - 表单和模型验证

    Phalcon 支持 2 个验证组件 Phalcon Validation Validator Phalcon Mvc Model Validator 我不知道如何在我的情况下使用它们 我有一张注册表 其中包含 csrf username
  • Google Admin SDK - 服务帐户无法访问资源

    我已通过 console developers google com 创建了服务帐户客户端 生成的密钥 p12 证书 启用 DwD 等等 然后我继续在管理员中担任描述者API参考 https developers google com id
  • OpenLayers 3 图像和文本样式 zindex

    我注意到文本和图像样式在渲染时似乎不遵守其图层顺序 例如 当具有这些样式的许多要素靠近时 所有文本都会呈现在其他重叠矢量要素之上 有没有办法禁用或覆盖这种行为 谢谢 myFeature setStyle new ol style Style
  • LINQ - 按名称分组到 Dictionary>

    我正在构建一个图书馆应用程序 我有一个书籍列表 其中一些书籍的名称重复 同一本书的副本很少 我想将列表转换为 Dictionary gt 其中字符串是一本书的名称 列表将包含具有该名称的所有 Book 对象 我已经做到了这一点 var re
  • 在安装过程中使用 Inno Setup 删除未随 Inno Setup 安装的其他应用程序

    我有一个旧的 VB6 应用程序 它是使用非常旧的 16 位版本的 InstallShield 部署的 我已经使用 Inno Setup 创建了一个新的安装程序 以便通过更新对我的 VB6 应用程序进行 64 位友好 我的所有用户都已安装现有