WriteReg函数为大型注册表值提供错误

时间:2013-08-26 13:38:12

标签: registry nsis

在NSIS中,我正在使用WriteRegBin。但是如果值的长度很大(大约超过15000个字符),那么在编译nsi代码时,它将无法工作并编译停止。 例如(代码下面有大约1500个以上的字符,然后出现错误)

WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\nnn\qwrtt\B4CA2970-DD2B-11D0-9DFA-00AA00AF3494020000000000500002000000000000003070693300000000000000000400000000.....etc etc etc..

那么如何解决它。我知道我可以使用导入注册表文件,如下所示。

ExecWait '"regedit.exe" /s "$TEMP\registryfile.reg"'

但我如何在WriteRegBin函数中管理

1 个答案:

答案 0 :(得分:1)

您当前的示例有一个很长的名称,而documented的名称限制为255个字符。

MSDN也告诉你:

  

长值(超过2,048字节)应存储在文件中,并且   文件的位置应存储在注册表中。这有帮助   注册表有效地执行。

我不知道确切的NSIS REG_BINARY限制,但如果你想绕过它,你可以直接用系统插件调用注册表函数......