NSIS - 检查注册表项值是否存在

2024-03-10

我需要检查注册表值是否存在。我怎样才能做到这一点?

我的第一个方法:

ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:"
        ${IF} $0 == ""
              MESSAGEBOX MB_OK "NUL exists"
        ${ELSE}
               WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:" ""
        ${ENDIF}

但当该值不存在时,这也有效。我想,因为“不存在”和空字符串的处理方式相同。

对于Registry.nsh,我是这样做的:

${registry::Read} "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:" $var1 $var2

        ${IF} $var2 == "REG_SZ"

但我收到错误,因为registry.nsh 中的 Pop ${_STRING} 不起作用。

欢迎帮助和建议!


您应该在阅读后检查错误标志:

ClearErrors
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:"
${If} ${Errors}
  MessageBox MB_OK "Value not found"
${Else}
  ${IF} $0 == ""
              MESSAGEBOX MB_OK "NUL exists and it's empty"
        ${ELSE}
               WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:" ""
        ${ENDIF}
${EndIf}

另外,您可能感兴趣枚举寄存器值 http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.2.6在尝试阅读之前。

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

NSIS - 检查注册表项值是否存在 的相关文章

  • NSIS ERROR解决方法

    可能有病毒 如果没病毒可用 NCRC命令跳过检测 xff1a 开始菜单 运行 输入cmd xff0c 点确定 xff0c 会出现黑色类似DOS的窗口在此窗口中输入 xff1a start 空格 安装文件目录例如F 新建文件夹 steup e
  • Qt之NSIS打包

    一 Qt发布方式 Qt发布的时候 通常使用两种方式 1 静态编译 把相关联的库一并引入可执行程序 虽然发布简单 但可执行程序较大 2 动态编译 把相关联的库 以dll的形式引用 不包含到可执行程序 发布不方便 但可执行程序较小 二 NSIS
  • 创建安装程序:从注册表项读取安装路径(例如 wix/installshield/nsis)

    我想创建我的程序的安装程序 但由于安装相当复杂 我需要比 installshield 限量版更高级的东西 我必须从当前的安装程序中运行另一个安装程序 用户是否按 取消 或安装该程序并不重要 我只需要运行它即可 我必须在用户计算机上安装一个包
  • 在许可证页面上添加复选框和单选按钮

    我正在 Nsis 中编写脚本 我需要在许可证页面上有选项单选按钮以及用于再次确认的复选框 是否可以这样做 因为如果我尝试插入较高优先级的是复选框 而我缺少单选按钮 最好我想只修改许可证页面而不创建自定义页面 感谢您的帮助 选项A 使用修改后
  • 是否可以从 Java 代码调用 Ant 或 NSIS 脚本?

    是否可以在运行时从 Java 代码以编程方式调用 Ant 或 NSIS 脚本 如果是这样 怎么办 You can从 Java 代码调用 ant 脚本 See 本文 http ant apache org manual running htm
  • 如何使用 NSIS 请求管理员权限?

    我对 NSIS 还很陌生 我试图请求管理员权限才能运行安装程序 因为它与注册表有点混乱 我对 RequestExecutionLevel 和 MULTIUSER EXECUTIONLEVEL 的问题是 它们都绝对阻止任何非管理员用户打开安装
  • 使用 SIS 执行 postgres db init 的批处理文件给出权限被拒绝

    跟随我的上一个问题 https stackoverflow com questions 30924913 how to install postgres with nsis with all parameters我现在尝试通过 NSIS 代
  • 为 NSIS 安装程序设置 UAC“发布者”字段

    当我打开安装程序 使用 NSIS 创建的 时 会出现 UAC 对话框 其中包含有关我的安装程序的信息 场出版商是 未知 我听说过对应用程序进行数字签名 您知道如何在 NSIS 中执行此操作吗 如何设置字段 属性出版商到 我的安装程序 或其他
  • 如何在NSIS中调用PowerShell

    我正在尝试在 NSIS 中运行 PowerShell 当我运行 NSIS 脚本时 include x64 nsh Name nsExec Test OutFile nsExecTest exe ShowInstDetails show Se
  • NSIS反编译器

    任何熟悉 NSIS 反编译器的人 谷歌不是 谢谢 乙 如何访问 NSIS 安装程序脚本 好吧 这就是这篇文章的大主题 http netcologne dl sourceforge net project nsis NSIS 202 2 09
  • 使用 NSIS 安装程序向注册表项授予权限的有效方法是什么?

    我正在尝试使用访问控制插件 http nsis sourceforge net AccessControl plug in在 NSIS 中设置注册表项的权限 它不起作用 安装程序运行后 所有用户组没有完全控制权 我在下面创建了一个示例 这里
  • 卸载前检查应用程序是否在 NSIS 中运行

    我是 NSIS 新手 我需要知道在卸载程序中 如何检查应用程序 C 中的 是否正在运行并在卸载之前将其关闭 这是一个稍微更友好的使用版本NS进程 http nsis sourceforge net NsProcess plugin请求应用程
  • 如何在nsis中获取其他应用程序的退出代码

    在我的 nsi 文件中 我正在调用ExecWait INSTDIR application exe 0 在 application exe 中 我返回成功和失败的退出代码 如何捕获 nsi 文件中的那些退出代码 如果执行 ExecWait
  • NSIS - 检查进程是否存在(nsProcess 不工作)

    对于我的 NSIS 卸载程序 我想检查进程是否正在运行 FindProcDLL 在 Windows 7 x64 下无法工作 所以我尝试了 nsProcess 我从网站下载了1 6版本 http nsis sourceforge net Ns
  • NSIS 插件“nsScreenshot”在 Windows NT 6.x 中不起作用

    我添加了一个比原始插件晚3年发布的代码 但它仍然返回错误 代码很简单 恕我直言 但我仍然很可能错过某些方面 看这段代码 nsScreenshot NSIS Plugin c 2003 Leon Zandman email protected
  • 有没有办法提前测试Windows exe是否会因为缺少dll而无法加载?

    如果您尝试在没有任何更新的情况下在 Windows 8 1 上安装 vs2015 Redistributable 它将安装失败 但它会在安装过程中进行足够多的操作 guid 位于注册表中 因此 如果您运行一个程序来检查注册表中是否存在可再发
  • 如何在 NSIS 中使用 try catch

    您好 我在安装时在 nsis 安装程序中的几台机器上遇到了奇怪的错误 使用 fontreg nsh 安装字体时给出 无效的 win32 文件句柄 我试过谷歌但没有得到这个问题的答案 现在我正在考虑抑制此消息 那么有什么方法可以抑制此消息 或
  • NSIS:在标签中插入链接

    假设我有以下 nsDialog 标签 单击 接受 即表示我同意示例的许可协议和隐私政策 您可以访问需要使用个人信息的功能 欲了解更多信息 请下载示例的内容政策 我想在此标签中插入链接 如下所示 单击 接受 即表示我同意示例的内容许可协议 h
  • NSIS - 在命令行安装期间打印提示

    我正在使用 NSIS 为 Windows 制作安装程序 并且有许多用户可以使用命令行指定的自定义安装选项 例如 installer exe IDPATH c Program Files Adobe Adobe InDesign CS5 S
  • NSIS获取参数

    to get n 0值作为字符串 不需要选项 传递给安装程序 我不太明白这个函数的工作原理是什么 GetParameters input none output top of stack replaces with e g whatever

随机推荐

  • Laravel Carbon,检索今天的日期和工作日?

    我正在使用 Carbon 将 2 个日期与今天的日期进行比较 但是我在数据库中还有另一个名为工作日的字段 其中包含以下值 莫 你 我们 所以我不仅想按日期搜索和输出 还想按工作日搜索 所以 public function show id t
  • 将 JSON 反序列化为 C# 类

    下面是我在成功创建新的 工作代码 条目后从 REST API 获得的 稍微 精简的响应 我需要将响应反序列化到某些类中 但我很困惑 作为参考 我在 NET 3 5 中使用 JSON NET 在 SQL Server 2008 R2 中的 S
  • 使用变量调用[数据库].[架构]

    我试图操纵这个现有的代码 因为在测试时 它没有引用表的确切位置 我的意思是 它不引用表的数据库名称和架构及其表名称 示例 如果该表被调用 package 那么目前它只是在更新语句 package 中输出 而不是 Holidays dbo p
  • 在 OnGroupClickListener 中获取单击的组

    如何检索在 ExpandableListView 的 OnGroupClickListener 中单击的组 我尝试过parent getItemAtPosition groupPosition 它返回组和子项 所以我想我必须将groupPo
  • WPF 中 MVVM 的项目结构

    在 WPF 中使用 MVVM 时最终得到的项目结构是什么 从我现在看到的教程来看 他们通常有文件夹 Model ViewModel 和 看法 在模型中 您可以放置 像 Person 这样的类来捕获数据 和逻辑 在 ViewModel 中 您
  • 气流:在特定时间重试

    我需要创建一个绝对需要在 9 点之前运行的 Airflow 作业 我目前有一项工作从 7 小时开始 重试 8 间隔 15 分钟 8 15m 2 小时 不幸的是 我的工作需要更多时间 因此 任务在 9 小时 硬截止日期 后失败 我怎样才能让它
  • 如何正确缩进 Django 模板

    我在 SublimeText 3 中工作 在编写 Django 模板时 我混合了 html 和函数 我喜欢缩进我的代码 以便block if和其他此类声明均缩进 例如 手动格式化 extends accounts base html blo
  • 如何将 CNF 表达式重铸为 3-CNF?

    我有一个像这样的 CNF 表达式 我想将其重新转换为 3 CNF a b c d a b d a b d 有谁知道我该怎么做 A 3 CNF https math stackexchange com questions 56369 can
  • VB.NET - Array.Contains 的替代方案?

    之前 我在 NET Framework 3 5 上使用它并且运行良好 If New String ER PM EM OC Contains Session Position Then Some codes End If 现在我正在做一个使用
  • 模板渲染期间出现异常(“块类型 sonata.Admin.block.admin_list 不存在”)

    Hi我是新来的Symfony2并在生成我的管理面板时面临这个问题 在 SonataAdminBundle Core dashboard html twig 第 35 行渲染模板期间出现异常 块类型 sonata Admin block ad
  • Java(机器人)屏幕截图超出可见范围

    我想立即截取比我的屏幕大的整个网站的屏幕截图 我知道如何使用 Robot 类来截取可见区域的屏幕截图 我认为这样做的一种方法是 启动浏览器 进入所需网站 启动我的程序 程序将截取可见区域的屏幕截图 程序将向下滚动以使页面的后半部分可见并截取
  • EF 4.1 Code First 和现有数据库以及 .NET 成员资格

    我的开发盒上有一个名为 ApplicationName Development 的数据库在 SQL Server 2008 R2 Developer 版本上运行 我将 NET 成员资格表添加到数据库中没有任何问题 当我尝试让 Code Fi
  • 我想删除 HTML 空白

    我有一个新问题困扰着我 我正在制作一个网页 我希望在不滚动的情况下进行修复 最重要的是我希望我的主 Div 填满我的所有可用空间 我做了这个代码
  • 是否允许类型相同但大小不同的双关数组?

    类型相同但大小不同的双关数组仍然违反严格别名吗 int arr 4 int ref 2 reinterpret cast
  • xcode 5 中的 Shell 脚本调用错误

    我在我的项目中使用 openssl 和 sqlcipher 我必须从 Xcode 4 6 升级到 Xcode 5 但是我在 Xcode 5 中编译项目 它给我错误 cp libCrypto a 没有这样的文件或目录 Cp libssl a
  • 用于匹配捕获组中前面或后面的字母字符的正则表达式

    举例来说 我有以下数据 ab cd ef zy ba cd 我希望能够以匹配第一个字符的方式来匹配它 然后根据第一个字符的捕获组匹配第二个字符 上面示例中的每一行都应该匹配 而类似cc or af不应该 详细来说 我的想法看起来像这样 基于
  • HTML img src 返回 404 未找到错误,尽管一切正常

    这是一件令人困惑的事情 首先看我的文件夹的层次结构等 https i stack imgur com b5U8a png并看到图像文件夹下有我的图像 cribbage png 我正在尝试使用 index html 中的以下代码访问此图像 h
  • 在 PostgreSQL 中连接

    我有一个带有宽度和高度 均为整数 的表格 我想按原样显示它 例如 宽度 300 高度 160 面积 300 x 160 我正在使用以下查询 select cast concat width x height as varchar 20 fr
  • 云形成的秘密

    我想坚持 所有基础设施都是代码 的政策 但是 我看不到使用 CloudFormation 来实现机密的方法 SecretsManager 要求您以纯文本形式指定 SecretString 即使您从某处注入解密的值 纯文本字符串也会显示在 C
  • NSIS - 检查注册表项值是否存在

    我需要检查注册表值是否存在 我怎样才能做到这一点 我的第一个方法 ReadRegStr 0 HKLM SOFTWARE Microsoft Windows NT CurrentVersion Ports NUL IF 0 MESSAGEBO