准备卸载,就像 Inno Setup 中的准备安装页面一样

2024-03-08

我需要检查多个 .exe 文件是否正在运行(通过安装程序安装),然后提示用户关闭它们(如果它们正在运行),如果没有则取消卸载过程。

有没有办法在安装中为卸载程序提供类似“准备”页面之类的内容?

或者我该如何实施这样的检查?甚至一个消息框也将是完美的。


如果这是您的应用程序,请让它创建一个互斥体。然后你可以使用AppMutex指示 https://jrsoftware.org/ishelp/index.php?topic=setup_appmutex,甚至适用于卸载程序。

[Setup]
AppMutex=MyProgMutex

如果无法修改应用程序,则需要在 Inno Setup 中编写代码以检查正在运行的应用程序。例如,您可以使用IsAppRunning从 @RRUZ 的答案到函数如何使用 Inno Setup 检查进程是否在 Windows 2008 R2 64 位上运行? https://stackoverflow.com/q/9941293/850848 in .

function InitializeUninstall(): Boolean;
var
  Message: string;
begin
  while IsAppRunning('MyProg.exe') do
  begin
    Message := 'The program is running, please close it';
    if MsgBox(Message, mbError, MB_OKCANCEL) = IDCANCEL then
    begin
      Result := False
      Exit;
    end;
  end;
  Result := True;
end;

有关安装程序的类似问题,请参阅:
在尝试安装之前是否可以检查程序是否已经在运行? (创新设置) https://stackoverflow.com/q/60526914/850848

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

准备卸载,就像 Inno Setup 中的准备安装页面一样 的相关文章

  • 如何在 Windows 注册表中检测用户是否安装了 .Net Framework?

    如何在 Windows 注册表中检测用户是否安装了 Net Framework 我不是在寻找基于 Net 的解决方案 因为查询来自 InnoSetup 我通过阅读 Stack Overflow 上的另一篇文章知道 Net Framework
  • 为什么我们不能在 inno-setup [代码] 中声明局部 const 变量?

    你知道为什么在声明时局部常量变量 脚本无法编译 抱歉 我对 pascal 知之甚少 无法弄清楚为什么这不起作用 这个例子 见函数圆面积 表明我的语法应该没问题 http www tutorialspoint com pascal pasca
  • 向标准 Inno Setup 页面添加额外的控件?

    如何将复选框添加到 Inno Setup 创建的文件夹选择对话框中 如下图所示 这不是自定义对话框 它是由 Inno Setup 自动创建的 Set the Parent复选框的属性WizardForm SelectDirPage var
  • 从一种安装切换到另一种安装时,Inno setup 会隐藏安装项目

    我应该需要你的帮助 我想知道 Inno 是否有可能为 2 个产品设置 2 个不同的安装掩码 通过从下拉列表中选择 我们将这两种不同的安装称为 SETUP 和 PROGRAM 安装 SETUP 时 我们应该可以选中 取消选中以下复选框 将安装
  • 是否可以使用 sha1 和 sha256 证书对安装程序和卸载程序进行双重签名?

    Inno Setup 中是否可以同时使用 sha1 和 sha256 对卸载程序和安装程序进行签名 我知道它是可以签署 https stackoverflow com a 30671378 1329977通过命令工具具有两个证书的可执行文件
  • 为每个文件调用 Inno Setup AfterInstall 函数

    我想在安装文件夹后调用一个函数 但是InstallEnv函数似乎被调用了几次 也许每个文件都是文件夹 待确认 有没有办法在安装所有这些文件后只调用一次 我无法使用Run部分 因为我想用返回代码进行错误捕获 Source InputFiles
  • 使用 Inno Setup 添加卸载信息

    我正在使用 Inno Setup 为我的程序创建安装程序 但我希望能够添加图标并更改控制面板 添加 删除程序 中显示的一些信息 我知道 Inno Setup 添加了一个注册表项来获取首先列出的程序 所以我想知道是否可以以任何方式扩展它 以便
  • Inno Setup TInputQueryWizardPage (CreateInputQueryPage) 上如何减小两个输入框之间的行距

    我有一个TInputQueryWizardPage具有 8 个用户输入的页面 这增加了向导页面 https stackoverflow com q 11778292 但所有值仍然不可见 有没有办法减少两个值之间的行距 以便所有值都以当前向导
  • “ProgramData”目录的 Inno 设置常量

    我希望我的安装程序将一些文件复制到 Windows 中ProgramData目录中 我看到大多数 Windows 目录都有已在 Inno Setup 文档中定义的预定义常量 但是我看不到一个ProgramData 因此我计划使用类似的东西
  • 使用 wmi win32 类检查可用端口?

    我正在使用 inno setup 来制作安装文件 它需要提取本地 IP 地址 我可以通过查询 Win32 NetworkAdapterConfiguration 来完成 并检查特定端口是否打开以供软件运行 我目前正在寻找答案 我意识到 WM
  • Innosetup 添加多个 exe 文件并在主设置中执行

    我想知道如何添加额外的安装 exe 并使用 innosetup 与我的主 exe 一起执行额外的 exe 请帮助我 因为我在过去 3 天里一直在尝试这个 因为我是 innosetup 的新手 谢谢 最简单的方法是在 Run 部分调用附加的
  • 将 AppMutex 与静默 Inno Setup 一起使用

    我在 Inno Setup 脚本中使用 AppMutex 来确保产品在安装更新时不再运行 这基本上工作得很好 但是 当使用 verysilent 命令参数运行此设置时 会显示一个对话框 尽管非常安静 表明程序仍在运行 应该关闭 由于程序本身
  • ISCC - /D 编译器参数似乎没有效果

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

    如何追加AppVersion to setup exe file 换句话说 如何使输出文件名为sample setup 1 4 2 0 exe Setup AppName GetStringFileInfo Sample exe Produ
  • 安装日志文件丢失

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

    我遵循了马丁的回答here https stackoverflow com questions 34592002 how to create two licensefile pages in inno setup在我的 Inno Setup
  • 使用 inno setup 安装时检查可用端口

    我正在尝试在 inno setup 中创建以下功能 用户被要求输入他们希望我的应用程序进行通信的端口 一旦他们进入端口 他们就可以点击检查按钮 此检查按钮将运行一些代码来查看安装计算机上的端口是否可用 到目前为止 我可以为用户创建输入框来输
  • Inno Setup 无法导入 DLL

    我没有运气将 Delphi DLL 导入 Inno Setup Unicode 该DLL有一个简单的过程 procedure Foo stdcall begin end exports Foo 该 DLL 包含在安装程序源中 并添加到文件列
  • Inno Setup 如何在浏览对话框中显示网络?

    在我的设置中 在浏览器中显示 浏览 按钮 wpSelectDir or CreateInputDirPage例如 网络永远不会显示 我对此进行了一段时间的搜索 但目前还没有找到任何解决方案 有没有办法显示网络并让用户选择网络路径 感谢您对此
  • 在 Inno Setup 中单击“下一步”按钮时验证自定义页面上的数据

    我已经设法获得一个基本脚本来显示向导 使用CreateInputFilePage 供用户识别我用来更新 XML 文件中某些设置的文件位置 但是 我想对所选文件的输入进行一些基本检查 而不是简单地接受用户提供的任何内容 例如 如果用户在内容无

随机推荐

  • R中如何判断列表是否为空?

    本质上 我有一个创建 list 输出的函数 我希望我的函数不创建 list 而是用另一个值 例如 NULL 或字符串 替换它 有没有办法确定变量是否分配给空列表list 空列表为空 它没有元素 但仍然是一个列表 没有元素的列表的长度为 0
  • 如何解决 ClassNotFoundException?

    我正在尝试运行 Java 应用程序 但收到此错误 java lang ClassNotFoundException 冒号后面是缺少的类的位置 但是 我知道该位置不存在 因为该类位于其他地方 我怎样才能更新该类的路径 和类路径有关系吗 类路径
  • 我如何将小胡子中的变量大写

    我的小胡子模板中有一个名为 type 的变量 我想使用标题大小写将 type 的值大写 这可能吗 考虑到该类型不是网页上显示的类型 它存储一个值 type 你可以将它包裹在一个span并使用CSS CSS capitalize text t
  • 用C语言从M68k RAM地址获取特定字节

    通过 IDA 反汇编程序我到达了这个地址 0010FD74 00 00 00 00 00 00 03 00 00 00 00 00 82 03 80 02 现在我需要给定地址来获取特定字节 例如第 7 个位置有 03 我尝试过使用C语言来做
  • Android:将imageview转换为位图,转换为灰度,位图转换为imageview

    当我编译此代码时 我没有在 Eclipse 上收到任何警告 但是当我在设备或模拟器上运行它时 该程序被迫关闭 public class MainActivity extends Activity ImageView img Button b
  • 如何卸载 Ruby on Rails 并进行全新安装?

    我正在学习 Rails 教程 我遇到 RVM 版本问题并且收到很多错误 我想从 Ruby Rails Gemfiles 等的干净版本开始 谁能给我一些关于如何卸载 Ruby on Rails 环境的简短说明 尝试这个 rvm get hea
  • 在 PHP 7 中全局启用“strict_types”

    我目前正在将我的网站从 PHP5 迁移到 PHP7 并且我已经开始使用添加的严格类型功能 然而 这要求我以下行开头所有文件
  • 如何在 macOS 沙盒环境中从 C++ 运行 AppleScript 而不会侵犯权利

    我正在尝试使用AppleScript来控制ApplePhotos来自 QT C 应用程序中的应用程序 该应用程序必须在 macOS App Store 所需的沙箱环境中运行 我尝试通过 QProcess 启动来运行 AppleScripto
  • 如何使 CDT/Eclipse 与 C++11 线程一起工作?

    我尝试在 Eclipse 中测试 C 11 线程的示例 但我在运行程序时收到此消息 抛出 std system error 实例后调用终止 什么 不允许操作 我的系统 ubuntu gcc 4 7 Program include
  • Ksoap2 Android - 如何为复杂对象的子属性指定命名空间?

    我正在尝试使用 KSoap2 Android 将复杂对象上传到 WCF Web 服务 但执行此操作时遇到一些困难 当我使用SoapUI并手动填写数据时 我已经成功调用了Web服务 成功的SoapUI生成的请求如下
  • 错误 - Jenkins 检测到正在运行多个实例

    我正在将 Jenkins 作为 Windows 服务运行 一切都很好 突然从今天中午开始 我在打开它时开始看到以下错误 Jenkins 检测到您似乎正在运行多个实例 Jenkins 共享相同的主目录 这 詹金斯非常困惑 你可能会遇到奇怪的情
  • 构建期间生成 T4 代码,自定义程序集参考

    我有一个 T4 模板 可以处理项目中的多个 tt 文件 我还定义了一些自定义类来帮助完成代码转换过程 lt template language C hostspecific True debug True gt lt output exte
  • 应该使用哪个:数组与链表?

    我计划实现一个有界队列而不使用Queue
  • Google Cloud 公共主机名

    是否有任何解决方案可以像其他云平台一样在谷歌云中获取公共主机名 目前机器名称是 计算机名 c googleprojectid internal 但我想要类似在亚马逊或Azure中的东西 计算机名 cloudapp net 您可以使用谷歌云D
  • 选择没有任何类的元素[重复]

    这个问题在这里已经有答案了 我需要通过 jQuery 选择器找到页面中没有类的所有跨度 Example span class Cool do not found me span span me me take me please span
  • Azure Functions - 导入自定义节点模块

    我正在尝试使用 Azure Functions 我正在尝试在我的函数中使用第三方节点模块 但是 我一直无法弄清楚如何导入它 id aaaaaaaa bbbb cccc dddd eeeeeeeeeeee requestId aaaaaaaa
  • Django 测试:测试表单字段的初始值

    我有一个观点 应该根据 GET 值为表单字段设置初始值 我想测试一下 我目前正在使用Django的测试客户端 http docs djangoproject com en dev topics testing module django t
  • 是否有命令行的版本控制系统抽象?

    现在 如此多的小型开源项目通过其版本控制系统 发布 我有数十个经常需要的存储库 通常位于多台计算机上 我正在寻找某种方法来轻松管理这个问题 如果我自己设计它 我将有一个列出所有远程存储库的文件 以及一个自动从它们中提取的命令行客户端 这个或
  • Express & Handlebars 的全球属性

    我使用 Handlebars 使用express3 handlebars 作为模板 使用 Passport 在 NodeJS 应用程序中进行身份验证 一切都很好 但我想知道是否有一种方法可以将 Passport 创建的 req user 对
  • 准备卸载,就像 Inno Setup 中的准备安装页面一样

    我需要检查多个 exe 文件是否正在运行 通过安装程序安装 然后提示用户关闭它们 如果它们正在运行 如果没有则取消卸载过程 有没有办法在安装中为卸载程序提供类似 准备 页面之类的内容 或者我该如何实施这样的检查 甚至一个消息框也将是完美的