2013-08-26 15 views
0

在NSIS中我使用WriteRegBin。但是,如果值的長度很大(大約超過15000個字符),那麼在編譯nsi代碼時,它將不起作用並編譯停止。 例如(下面的代碼有如果擁有約1500個多字,則錯誤來)WriteReg函數爲大的註冊表值給出錯誤

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

那麼如何可以解決的。我知道我可以使用導入註冊表文件,如下所示。

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

但我怎麼能在我的功能WriteRegBin管理

回答

1

您當前的例子有很長的關鍵的名字,而這些都是documented有255個字符的限制。

MSDN還告訴你:

長值(超過2,048字節)應該被保存在一個文件,並將該文件的 位置應存放在註冊表中。這有助於 註冊表有效地執行。

我不知道確切的NSIS REG_BINARY限制,但如果你想繞過它,你可以用系統插件直接調用註冊表函數...