0

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 関数で管理できますか

4

1 に答える 1

1

現在の例には長いキー名があり、それらは255 文字の制限があると文書化されています。

MSDN にも次のように記載されています。

長い値 (2,048 バイトを超える) はファイルに格納する必要があり、ファイルの場所はレジストリに格納する必要があります。これにより、レジストリが効率的に実行されます。

NSIS REG_BINARY の正確な制限はわかりませんが、バイパスしたい場合は、システム プラグインを使用してレジストリ関数を直接呼び出すことができます...

于 2013-08-26T14:05:53.583 に答える