Inno Setup - 检查目标中是否存在文件,否则不会中止安装

2024-03-07

我需要我的安装程序检查目标位置中是否存在文件,如果不存在,则安装将中止。我的项目是一个更新补丁,因此我希望安装程序在应用程序的主 exe 不在目标中时避免安装更新文件。我怎样才能做到这一点?

有人可以给出一个通过 Windows 注册表检查文件版本的代码示例吗?

[Files]
Source C:\filename.exe; DestDir {app}; Flags: ignoreversion; BeforeInstall: CheckForFile;

[code]

procedure CheckForFile(): Boolean;
begin
  if (FileExists('c:\somefile.exe')) then
  begin
    MsgBox('File exists, install continues', mbInformation, MB_OK);
    Result := True;
  end
  else
  begin
    MsgBox('File does not exist, install stops', mbCriticalError, MB_OK);
    Result := False;
  end;
end;

只是在用户选择正确的文件夹之前不要让他们继续。

function NextButtonClick(PageId: Integer): Boolean;
begin
    Result := True;
    if (PageId = wpSelectDir) and not FileExists(ExpandConstant('{app}\yourapp.exe')) then begin
        MsgBox('YourApp does not seem to be installed in that folder.  Please select the correct folder.', mbError, MB_OK);
        Result := False;
        exit;
    end;
end;

当然,尝试自动为它们选择正确的文件夹也是一个好主意,例如。通过从注册表中检索正确的位置。

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

Inno Setup - 检查目标中是否存在文件,否则不会中止安装 的相关文章

  • 为什么tcl/tkinter只支持BMP字符?

    我正在尝试在基于 tkinter 和 tcl 构建的 gui 中查询和显示 utf 8 编码字符 但是 我发现 tkinter 无法显示 4 字节字符 即大于 U FFFF 的 unicode 代码点 为什么会这样呢 实现非 BMP 字符对
  • SQL Server Express(或任何版本)可以在 RPi 上运行吗?

    我注意到完整版的 Windows 10 可以在 RPI 3 上运行 我想知道 SQL Server Express 或任何其他版本 是否可用于 ARM 版本的 Windows 我在任何地方都看不到它 所以我怀疑答案是否定的 但想检查一下我是
  • 最后一个参数中的正斜杠会导致批处理文件目录(“%~dp0”)的路径发生更改

    我正在学习如何在批处理脚本中使用参数 并最终创建了某种用于读取参数和设置参数的模板 echo off SetLocal EnableDelayedExpansion set needextra set errstat set noflag
  • Inno Setup 以字符串作为参数调用 DLL

    当我尝试使用 Inno Setup 脚本中的 DLL 时 出现异常 我认为问题出在dll代码中的这一行 StreamReader sreader new StreamReader newpath 如果我将路径硬编码为 D source tx
  • 在 Docker 中启动 tomcat 时无法在端口 8080 上打开网页

    在我的本地计算机 Windows 10 64 位 上 我启动 docker Toolbox 然后我拉取 Tomcat 映像并运行它 如下所示 docker run it tomcat 就跑成功了 31 Dec 2019 17 54 27 5
  • 如何在Windows中收集每个服务名称及其状态?

    我想在不使用任何第三方工具的情况下获取所有 service name 及其状态 迄今为止SC http ss64 com nt sc html命令足以获取其中一个值 例如 sc query findstr SERVICE NAME 但我还需
  • 使用 numpy.distutils.core.setup 之前安装 numpy

    我在用numpy distutils设置具有 fortran 模块的包 mypackage 问题是如果我这样做pip install mypackage在没有 numpy 的环境中 出现以下错误 ModuleNotFoundError 没有
  • 在新窗口中打开 SAS 程序

    目前 当您在 Windows 中双击 SAS 文件时 它将在您已打开的现有 SAS 会话中打开它 有没有办法让它在窗口中单击时会启动一个新的 SAS 窗口 据我所知 SAS 是一个所谓的 单实例 应用程序 因此它的默认行为是在现有会话中打开
  • 在 Windows 11 上无需管理员权限即可运行 Visual Studio 2022

    我在 Windows 11 上安装了 Visual Studio 2022 当我启动它时 它始终以管理员权限运行 我想在没有管理员权限的情况下运行它 我的 Windows 只有一个帐户 该帐户具有管理员权限 x 我做了什么 确认VS2022
  • 如何在 NERDTree 中显示隐藏文件(以句点开头)?

    我怎样才能使NERDTree https github com scrooloose nerdtree显示以 a 开头的文件 时期 我有一个名为 hgignore在项目目录中 如果我使用 NERDTree 浏览到该目录 该文件不会显示在树中
  • 如何通过 DOS 批处理命令发送电子邮件?

    我在 DOS 中有一个批处理文件 可以进行一些检查 完成后我需要发送一封电子邮件 我在 interwebz 上找到了一些解决方案 但大多数都是第三方的 或者只是在 Outlook 中打开新邮件 我需要命令来发送完整的电子邮件 而无需任何人工
  • NtDll 真的导出 C 运行时函数吗?我可以在我的应用程序中使用这些函数吗?

    我在查看 Windows 10 计算机上的 NtDll 导出表 发现它导出标准 C 运行时函数 例如memcpy sprintf strlen etc 这是否意味着我可以在运行时动态调用它们LoadLibrary and GetProcAd
  • 如何让脚本执行结束后自动删除?

    是否可以制作一个Python脚本 在Windows中执行结束时删除 py文件 自删除 这种方式使您的程序不依赖于操作系统 from os import remove from sys import argv remove argv 0 奖励
  • 批处理文件 FOR /f 标记

    任何人都可以逐行准确解释以下代码是如何工作的 我真的迷路了 我一直在尝试学习如何使用 FOR 命令 但我不明白这一点 echo off for f tokens delims f in myfile do set line f call p
  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • 如何在 C++ 中急于提交分配的内存?

    总体情况 带宽 CPU 使用率和 GPU 使用率都极其密集的应用程序需要每秒从一个 GPU 向另一个 GPU 传输约 10 15GB 的数据 它使用 DX11 API 来访问 GPU 因此上传到 GPU 只能在每次上传都需要映射的缓冲区中进
  • 用于验证 IIS 设置的 Powershell 脚本

    是否可以使用 Power Shell 脚本获取 IIS 设置 我希望使用脚本获取 检查以下信息 检查 Windows 身份验证提供程序是否正确列出 协商 NTLM 检查是否启用了 Windows 身份验证 Windows 身份验证高级设置
  • 移动/调整窗口大小时闪烁

    我开发了一个显示 jpeg 图像的应用程序 它可以显示 4 个图像 屏幕的每个象限各一个 为此 它使用了 4 个窗口 窗口没有边框 框架 也没有标题栏 当加载新图像时 窗口大小会根据新图像进行调整 然后显示该图像 尤其是当窗户做得较大时 经
  • VS 2015 SSDT 安装失败

    我的计算机上安装了 Microsoft Visual Studio Professional 2015 还安装了 SQL Server 2017 我正在尝试在我的计算机上安装用于 BI 项目的 SQL Server 开发工具 我尝试安装 S
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja

随机推荐

  • viewDidUnload 中有效的内容应该移至 didReceiveMemoryWarning 吗?

    在新的 iOS 6 中 viewDidUnload已弃用 我们已被指示使用didReceiveMemoryWarning相反 管理 UIViewController 实例和子类中的对象 将 nils 分配给内部的 UIView 类型是否同样
  • Angular AOT 组件中的相对路径

    我在这里问是因为我在网上找不到完整的文档 这个例子here https angular io docs ts latest cookbook aot compiler html太简单了 我有一个包含多个组件和一些模块的应用程序 用ngc编译
  • 在 IIS 5.1 (Windows XP) 上部署 ASP.NET MVC

    好吧 部署 ASP NET MVC 似乎很痛苦 我想在 Windows XP IIS 5 1 上部署 ASP NET MVC 应用程序 但似乎找不到如何执行此操作 当我在网络浏览器地址栏中输入应用程序名称时 我收到一条 网站不可用 消息 有
  • ES6数组初始化

    ES6 非常新 在 ES5 中我可能会做这样的事情 function newArray var data for var i 0 i lt 5 i data i test data i return data x newArray 在 ES
  • Tensorflow 中的反向传播(随时间)代码

    在哪里可以找到 Tensorflow python API 中的反向传播 通过时间 代码 或者使用其他算法 例如 当我创建 LSTM 网络时 TensorFlow 中的所有反向传播都是通过自动区分网络前向传递中的操作 并添加显式操作来计算网
  • 在 Android 版 PhoneGap 上捕获返回按键

    我正在使用 PhoneGap 进行 Android 应用程序开发 但我一直在捕获设备上的后退键按下 我尝试了其他线程和官方维基页面中的所有内容 但似乎都不起作用 我可以使用 keyEvent menuTrigger 和 keyEvent s
  • 如何以编程方式读取 PDF 书签

    我正在使用 PDF 转换器来访问 PDF 中的图形数据 一切工作正常 除了我没有得到书签列表 是否有可以读取 PDF 书签的命令行应用程序或 C 组件 我找到了 iText 和 SharpPDF 库 目前正在浏览它们 你曾经做过这样的事吗
  • 是否可以使用 stdout 作为 fluidd 源来捕获特定日志以写入elasticsearch?

    我对 fluidd 和 elasticsearch 都是菜鸟 我想知道 fluidd 是否可以从 stdout 捕获特定日志 在本例中为我们的应用程序生成的自定义审核日志 使用 stdout 作为源 并将它们写入到elasticsearch
  • 合并两个具有相同键的字典

    我有以下 2 本字典想要合并 我想合并相同的键 并且我想保留两个字典的值 我用了dict1 update dict2 但这替换了第二个到第一个字典中的值 u dict1 160 u na u na 162 u test u qq u wds
  • Kitkat (API 19) 中使用 setGroup() 的堆栈通知不起作用

    我有一个问题找不到答案 我已经尝试过 AndroidDeveloper 教程 我已经在 stackoverflow 和 google 上进行了搜索 但要么我的搜索技能太棒了 要么没有答案 我认为可以回答我的问题 当有多条消息时 我想将所有新
  • 当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER?

    我想在工作后电子邮件中向触发 Jenkins 工作的用户显示 这可以通过使用插件来实现构建用户变量插件和环境变量BUILD USER 但是当调度程序触发作业时 该变量不会被初始化 我们怎样才能做到这一点 我知道我们有一个名为 EnvInje
  • 如何使用opengl函数在c中制作用于绘制3D点的3D窗口?

    我可以制作 2D 窗口并绘制点 线等 我想制作 3D 窗口 以便可以通过绘制 3D 点 线来绘制 3D 对象 例如 glVertex3d x y z 如 2D glVertex2d x y 但我无法制作 3D 窗口 我只想制作一个 3D 窗
  • String.indexOf 函数出现意外结果?

    我真的对这个感到抓狂 情况是这样的 我有两个 JavaScript 字符串 如下所示 dsName Test 1 replacementString Test 我正在尝试查看 dsName 是否以 replacementString 开头
  • 防止在线棋牌游戏作弊? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在许多在线国际象棋大厅中 我见过 引擎 的实例 其中作弊者会在主游戏窗口的同时打开国际象棋程序 然后他会进行设置 以便将对手的动作传送
  • 使用正则表达式的 jQuery 验证插件自定义方法

    我需要为 jQuery Validator 创建一个新方法 但不知道从哪里开始 我希望它检查输入的电子邮件是否包括 specifieddomain com 但这也是输入的最后一部分 例如 specificdomain comChris 就不
  • ISO 8601 格式的当前时间

    出于记录目的 R 脚本如何获取 UTC 时区中的当前日期和时间 作为以下格式的 ISO 8601 字符串 2015 12 31T14 26 56 600374 00 00 as POSIXlt似乎是解决方案 并且文档声称它接受格式参数 但我
  • 访问 SQL 创建一对多关系,无需强制引用完整性

    我有这个关系 我必须暂时销毁它才能使用 SQL 命令更改 salID 字段的大小 ALTER TABLE Adressen DROP CONSTRAINT ChildTableMainTable 如何使用 SQL 命令重新创建相同的关系类型
  • 如何快速验证区分大小写的文件名是否确实存在

    我必须制作一个与unix兼容的windows delphi例程 以确认文件系统中是否存在文件名与想要的完全相同的情况 例如 John txt 在那里 而不是 john txt 如果我检查 FileExists john txt 由于 win
  • 在连接之间共享事务

    我有一个 FileShare 爬虫 获取权限并将其放在某处以供以后审核 目前 它正在启动多个线程来抓取同一文件夹 以加快进程 在 C 中 每个SqlConnection对象有自己的SqlTransaction 由SqlConnection
  • Inno Setup - 检查目标中是否存在文件,否则不会中止安装

    我需要我的安装程序检查目标位置中是否存在文件 如果不存在 则安装将中止 我的项目是一个更新补丁 因此我希望安装程序在应用程序的主 exe 不在目标中时避免安装更新文件 我怎样才能做到这一点 有人可以给出一个通过 Windows 注册表检查文