尝试在 Inno Setup 代码中检测锁定文件时出现“未知标识符‘FileOpen’”

2024-04-06

我正在尝试使用FileOpen在 Inno Setup 代码中,但是 Inno Setup 编译器不断向我抛出以下错误。

未知标识符“文件打开”

这是示例代码:

function IsFileLocked(pathFile : string) : Boolean;
var
  hFile : integer;
begin
  Result := true;

  hFile := FileOpen(pathFile);
  if (0 <> hFile) then
    begin
      Result := false;

      { Since ISPP 1.2, Inno Setup automatically frees resources, so FileClose() is obsolete. }
      { http://www.jrsoftware.org/ispphelp/index.php?topic=fileclose }
    end;
end;

不像FileClose方法,FileOpen并没有过时。

FileOpen http://www.jrsoftware.org/ispphelp/index.php?topic=funcs

我进行了谷歌搜索,但没有找到任何结果。我知道 Inno Setup 使用 Pascal Script,不是 Pascal,而是FileOpen函数是的一部分Inno Setup Preprocessor: Functions.

注意:我今天早上升级到最新版本的编译器(5.6.1a)和最新版本的Inno Script Studio(2.3.0),同样的问题。

我确实看到了该部分Other Information > ISPPBuiltins.iss。我尝试添加以下行:

[Code]
#include <ISPPBuiltins.iss>

添加#include语句,生成错误

ISPPBuiltins.iss 第 1 行:第 1 列:预期为“BEGIN”。

加入ISPPBuiltins.iss将项目作为解决问题的方法FileOpen问题是没有意义的,因为在文本编辑器中打开文件表明其中不存在“FileOpen”。我没有看到任何嵌入文件。编译器似乎不喜欢文件中的“; BEGIN ...”,但我离题了。这个想法就这么多了。

关于如何解决我的未知标识符问题的想法FileOpen?


FileOpen https://jrsoftware.org/ispphelp/index.php?topic=fileopen is a 预处理器 https://jrsoftware.org/ispphelp/功能。您不能在 Pascal Script 代码中使用它,该代码具有自己的函数库 https://jrsoftware.org/ishelp/index.php?topic=scriptfunctions.

  • 对于快速而肮脏的解决方案,请使用LoadStringFromFile https://jrsoftware.org/ishelp/index.php?topic=isxfunc_loadstringfromfile.

  • 为了获得更清洁、更高效的解决方案,import CreateFileWinAPI函数 https://web.archive.org/web/20160616224242/http://www.vincenzo.net/isxkb/index.php?title=CreateFile_%28%29.

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

尝试在 Inno Setup 代码中检测锁定文件时出现“未知标识符‘FileOpen’” 的相关文章

  • Inno Setup:选择组件的功能

    我有一个小问题 我需要当您选择一个或两个组件时显示一个页面 但其他的并不是只用单一的组件似乎就有效果 我留下了我正在工作的代码 Setup AppName My Program AppVerName My Program v 1 2 Def
  • 通过代码使卸载注册表项成为有条件的

    如何禁用 Inno SetupCreateUninstallRegKey http www jrsoftware org ishelp index php topic setup createuninstallregkey通过代码 My 安
  • 是否可以使用 INNO 脚本移动现有目录/文件?

    我们最近对一个使用 INNO 脚本安装的应用程序进行了重大重组 不幸的是 该应用程序需要某些文件在不同版本之间保持不变 更不幸的是 这些文件的位置在这次重组期间发生了变化 最不幸的是 现在由我来制作一个 INNO 脚本片段 它将查看这些文件
  • Inno Setup - 检查目标中是否存在文件,否则不会中止安装

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

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

    我想知道如何添加额外的安装 exe 并使用 innosetup 与我的主 exe 一起执行额外的 exe 请帮助我 因为我在过去 3 天里一直在尝试这个 因为我是 innosetup 的新手 谢谢 最简单的方法是在 Run 部分调用附加的
  • PascalScript 是否与 Delphi XE5 兼容以创建 Android/iOS/Windows 应用程序?

    我想创建一个基于 JSON 数据绘制简单表单的应用程序 我需要一个脚本来对此进行情报处理 RemObjects 的 Pascal Script 可以解决这个问题吗 是否兼容为 Android iOS 和 Windows 生成具有相同源代码的
  • Inno Setup:将 DLL 放入子目录中

    我想将依赖项 几个 DLL 文件 复制到单独的子目录中 安装我的程序后 目录结构将如下所示 dlls a dll b dll sample pg exe 我的脚本的相关部分如下 Dirs Name app sample Name app d
  • Inno Setup - 更新时删除旧的/过时的文件

    所以 我意识到这个问题以前已经被问过 事实上 在写这篇文章之前 我读了其中的 10 篇文章 但没有一个有适用的解决方案 我希望现在有人已经找到了一些东西 问题 我的程序是使用脚本构建的 在单个文件夹中创建所有最终文件 这些文件包含在 inn
  • 安装前检查 Java 是否存在

    我正在为 jar 应用程序创建 Inno Setup 安装程序 我现在想做的是在继续安装之前检查 java 是否存在 所以我只需要确保用户能够运行 java jar my app jar 我现在正在做的是 Code function Ini
  • Inno Setup 卸载进度条更改事件

    有没有类似的事件 函数CurInstallProgressChanged对于进度条CurProgress and MaxProgressInno Setup 中卸载表单中的值 对此没有本机支持 您可以做的是设置一个计时器并观察时间的变化Un
  • 如何在 Inno Setup 中使用 GetVolumeInformation?

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

    我制作了一个脚本 其中包括 Setup SetupLogging yes 但我找不到日志文件 好像没有被创建 它可能在哪里 可以指定我想放置它的位置吗 您可以通过设置指定日志文件的路径命令行参数 所以要记录例如到C FileName log
  • Inno Setup:如何在选中的复选框上显示(隐藏/取消隐藏)密码

    我在输入查询页面中添加了一个复选框 以便在选中时使用它向我显示未发现的密码 但我不知道该怎么做 我已经创建了以下过程 但这个过程并没有改变我添加输入时的 true false 值 此过程添加了我完成这项工作的新文本框 请你帮助我好吗 pro
  • Inno-Setup:在消息框中使用自己的按钮文本

    良好的 GUI 设计中的常见做法是不使用是 否消息框 而是为按钮提供真实名称 例如保存或丢弃 我们如何在显示的消息框中实现这一点MsgBox在 InnoSetup 中 至少对于我们在代码部分中显示的那些 The MsgBox http ww
  • Inno Setup:允许用户只选择可以安装软件的驱动器?

    我可以允许用户只选择要安装软件的驱动器吗 例如 他们可以选择C or D drive C Software D Software 但用户不能指定任何其他内容 就像他们不能选择安装下面的软件一样Downloads or MyDocumnets
  • Vista幻影目录

    我们有一个程序 安装程序会检查配置文件是否存在 如果存在 它不会复制该文件 它假设用户已修改其配置文件并希望保留这些修改 不幸的是 这是一个 Vista 之前的应用程序 它将配置文件保存在 Program Files 中 问题是 如果你在重
  • Inno Setup - 如何在安装过程中读取 INF 文件

    我需要知道如何在安装过程中从 INF 文件 inf 读取值 我希望安装程序检查我要更新的程序的版本 该程序版本不存储在注册表或任何其他文件中 仅存储在 inf 文件中 然后必须从中获取版本 我得到了你的答案 Trama 我无法使用 DLL
  • Inc 函数 Inno Setup

    这可能非常简单 但是当我尝试编译包含以下内容的程序时 Inc Count 在 Inno Setup 中我不断得到 未知标识符 Inc 我相信这就是在 Pascal 中递增整数的方式 并且对如何继续这里感到困惑 我正在使用 Inno Setu
  • 如何通过 Inno Setup for NetBeans 使用自定义 .iss 文件

    我将 Inno Setup 5 与 NetBeans 8 一起使用 并且我已经能够创建一个安装程序来安装该应用程序C users username local appname 但是我希望将其安装在C Programfiles 我如何在 Ne

随机推荐

  • 以编程方式禁用三星上的应用程序省电模式

    我是消息应用程序的开发人员 我的应用程序被置于自动省电模式 这会阻止消息通过 当我进入三星手机上的 应用程序省电 选项 设置 gt 电池 gt 应用程序省电 选项 时 我可以看到该选项对于某些应用程序 例如 WhatsApp 和 Faceb
  • 从 QRunnable 发出信号

    我正在尝试从一个发送信号QRunnable到我的主要QObject 但由于某种原因它没有收到它们 这是正确的方法吗 这是一个小测试用例 import sys from PyQt4 QtGui import QApplication from
  • Django:搜索短语中各个单词的首字母?

    我有一个名为的 Django 模型Author 有一个名为name 它不分为姓氏 名字 class Author models Model name models CharField max length 200 unique True 例
  • 根据条件分割数据框

    我正在尝试将我的数据框分成两个基于medical plan id 如果为空 则进入df1 如果不空入df2 df1 df with medicalplanid df with medicalplanid medical plan id df
  • R quantmod:getFinancials

    我正在尝试导入在纽约证券交易所上市的所有公司的财务报表 这些公司的市值大于样本的第一个四分位 这是我的代码 require TTR require quantmod data init 2013 01 01 start date lt as
  • 是否可以将类的静态对象存储在共享首选项中?

    我正在开发一个项目 我正在创建一个静态class s object 所以当我switch off device at that time all the static objects are cleared所以我想存储到shared pre
  • Python:如何在 40 秒内更新 Google BigQuery 中的值?

    我有一张桌子在Google BigQuery我使用 Python 访问和修改pandas功能read gbq and to gbq 问题是追加 100 000 行大约需要 150 秒 而追加 1 行大约需要 40 秒 我想更新表中的值而不是
  • 获取组驱动器中当前 Word 文档的 OneDrive 项目 ID

    我正在研究一个Office js Word插件但文档存储在组驱动器上 我怎样才能获得其中一个或全部group id drive id and item id对于当前文档 相关问题is here https stackoverflow com
  • 如何返回不同的值及其计数?

    我想做的 希望 很简单 但我只是不太掌握正确的语法 我想返回表中的所有不同值 并计算每个值的记录数 所以 在 PHP 中 我有 result mysql query SELECT DISTINCT tagName FROM tagTable
  • KivyMD 顶部应用栏

    我正在尝试学习 Kivy 和 KivyMD 因为我想制作一个 Android 应用程序 但我陷入了第一个障碍 我想要一个工具栏 或者按照 KivyMD 文档的说法 TopAppBar 我正在尝试按照文档实现它 但出现错误Unknown Cl
  • JSON自动添加反斜杠

    我正在尝试使用 Gson 将 java 对象转换为 json 但是当我尝试打印它时 我得到了这个 JSON 用户 电子邮件 电子邮件受保护 cdn cgi l email protection 姓氏 Las 姓名 amy 密码 qwe123
  • 是否可以将时间戳添加为 firestore 数据库中的文档字段?

    在与云Firestore https firebase google com docs firestore 我在将数据添加到 Cloud Firestore https firebase google com docs firestore
  • 有没有办法使用基于范围的 for 循环迭代最多 N 个元素?

    有没有一种好的方法可以使用基于范围的容器来迭代容器中的最多 N 个元素for标准库中的循环和 或算法 这就是重点 我知道我可以使用 旧 for带条件循环 基本上 我正在寻找与此 Python 代码相对应的内容 for i in arr N
  • Swift NSTextField 文本消失

    这个问题可能存在于 Objective c 的一篇 6 年前的帖子中 我还没有找到最近有效的答案或问题 或者是用 Swift 编写的答案或问题 我正在使用故事板并且我已经子类化NSTextField 由于某种原因 当我单击该字段时 占位符会
  • SwiftUI:TextField 中的多颜色文本

    我想为 TextField 中的文本更改两种不同的颜色 对于第一个单词 颜色为深灰色 对于第二个单词 颜色为浅灰色 是否可以 TextField Dumble Dore text username 还有另一种方法只使用 SwiftUI 和我
  • 如何在循环发送更多数据之前等待 COM 端口接收事件

    我正在开发一个小组件 用于使用旧的索尼爱立信手机编写和读取 AT 命令 向手机发送和写入数据完全没有问题 但是我希望能够暂停 SendATCmd 函数并等待 COM 端口组件通过通知事件通知我 然后再次恢复 SendATCmd 函数 场景
  • DUMPBIN 实用程序损坏的名称输出

    我正在使用 DUMPBIN 实用程序从 c dll 中获取损坏的名称以在 c 应用程序中使用 我使用 declspec dllexport 公开一个 C 类成员函数 输出的损坏名称结果如下 InitPort CProtocolStack Q
  • 如何用Python制作独特的短网址?

    如何在Python中创建唯一的URLhttps i stack imgur com turb6 jpg https i stack imgur com turb6 jpg or http tumblr com xzh3bi25y http
  • 使用 apache Camel 读取 gmail 收件箱中的所有邮件

    我正在尝试阅读来自谷歌邮件 Gmail imaps 帐户的所有邮件并下载其附件 但我只能收到一封未读邮件及其附件 发布我的代码片段 Download function public void download throws Exceptio
  • 尝试在 Inno Setup 代码中检测锁定文件时出现“未知标识符‘FileOpen’”

    我正在尝试使用FileOpen在 Inno Setup 代码中 但是 Inno Setup 编译器不断向我抛出以下错误 未知标识符 文件打开 这是示例代码 function IsFileLocked pathFile string Bool