首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NSIS中读取注册表项值失败

在NSIS中读取注册表项值失败
EN

Stack Overflow用户
提问于 2015-01-14 08:43:27
回答 1查看 3.9K关注 0票数 0

我已经发布了一个类似的问题(NSIS - check if registry key value exists),这个问题的解决方案非常有效:

代码语言:javascript
运行
复制
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:"

然后:

代码语言:javascript
运行
复制
${If} ${Errors}
#and so on

我在脚本中做了三次相同的事情,读取不同的注册表值和所有尝试,但是最后一次尝试是成功的:

代码语言:javascript
运行
复制
ReadRegStr $3 HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"

这总是返回一个错误。

我该怎么做才好呢?

第一次读取注册表值时,我使用$0存储返回值。然后是第二次$1,然后是$2$3

就像我说的,除了最后一个,一切都在工作。这是否与我正在读取的注册表项的类型有关,还是应该为返回值使用不同的变量?我尝试过其他的变量,但到目前为止都没有效果。

谢谢你的帮助和建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 11:45:31

问题在于

代码语言:javascript
运行
复制
ReadRegStr $3 HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"

是将根指定两次:

  • HKLM
  • HKEY_LOCAL_MACHINE\...

从子键名中删除HKEY_LOCAL_MACHINE,它应该是可以的。如果需要访问注册表的另一部分,请更改ReadRegStr的2参数,如 manual section中所述

  • HKCR for HKEY_CLASSES_ROOT
  • HKLM for HKEY_LOCAL_MACHINE
  • HKCU for HKEY_CURRENT_USER
  • HKU for HKEY_USERS
  • HKCC for HKEY_CURRENT_CONFIG
  • HKDD for HKEY_DYN_DATA
  • HKPD for HKEY_PERFORMANCE_DATA
  • SHCTX for SHELL_CONTEXT
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27938793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档