在 NSIS 中读取注册表项值失败
Reading registry key value in NSIS fails
我已经发布了一个类似的问题 (),并且该问题的解决方案非常有效:
ReadRegStr [=10=] HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:"
然后:
${If} ${Errors}
#and so on
我在脚本中又做了三次同样的事情,读取了不同的注册表值,并且除了最后一次之外的所有尝试都成功了:
ReadRegStr HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"
这总是 return 一个错误。
我应该怎么做?
第一次读取注册表值时,我使用 [=13=]
来存储 return 值。然后第二次
然后
和
。
就像我说的,除了最后一个,所有的工作。它与我正在阅读的注册表项的类型有关,还是我应该为 return 值使用不同的变量?我尝试了其他变量,但到目前为止没有任何效果。
感谢您的帮助和提示!
的问题
ReadRegStr HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"
是你指定了两次root:
HKLM
HKEY_LOCAL_MACHINE\...
把子键名的HKEY_LOCAL_MACHINE
去掉就可以了。如果您需要访问注册表的另一部分,请按照 WriteRegExpandStr
manual section:
中所述更改 ReadRegStr
的 2 参数
HKCR
对于 HKEY_CLASSES_ROOT
HKLM
对于 HKEY_LOCAL_MACHINE
HKCU
对于 HKEY_CURRENT_USER
HKU
对于 HKEY_USERS
HKCC
对于 HKEY_CURRENT_CONFIG
HKDD
对于 HKEY_DYN_DATA
HKPD
对于 HKEY_PERFORMANCE_DATA
SHCTX
对于 SHELL_CONTEXT
我已经发布了一个类似的问题 (
ReadRegStr [=10=] HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" "NUL:"
然后:
${If} ${Errors}
#and so on
我在脚本中又做了三次同样的事情,读取了不同的注册表值,并且除了最后一次之外的所有尝试都成功了:
ReadRegStr HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"
这总是 return 一个错误。
我应该怎么做?
第一次读取注册表值时,我使用 [=13=]
来存储 return 值。然后第二次然后
和
。
就像我说的,除了最后一个,所有的工作。它与我正在阅读的注册表项的类型有关,还是我应该为 return 值使用不同的变量?我尝试了其他变量,但到目前为止没有任何效果。
感谢您的帮助和提示!
ReadRegStr HKLM "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\SomePrinter" "Name"
是你指定了两次root:
HKLM
HKEY_LOCAL_MACHINE\...
把子键名的HKEY_LOCAL_MACHINE
去掉就可以了。如果您需要访问注册表的另一部分,请按照 WriteRegExpandStr
manual section:
ReadRegStr
的 2 参数
HKCR
对于HKEY_CLASSES_ROOT
HKLM
对于HKEY_LOCAL_MACHINE
HKCU
对于HKEY_CURRENT_USER
HKU
对于HKEY_USERS
HKCC
对于HKEY_CURRENT_CONFIG
HKDD
对于HKEY_DYN_DATA
HKPD
对于HKEY_PERFORMANCE_DATA
SHCTX
对于SHELL_CONTEXT