まったく問題なくレジストリに書き込むことができます。私の問題は、追加しようとしていることです:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.12]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetMacroEnabled.12]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12]
"BrowserFlags"=dword:80000A00
レジストリに。vb.net の DWord 値を Long または Decimal としてキャストすると、型の不一致があると表示されます。10 進値は 2147486208 です。これは 10 文字です。8 を削除すると、適切な 16 進数値がレジストリに追加されますが、8 を再度追加すると、範囲外の例外がスローされます。
私は何を間違っていますか?
編集:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim regKey As RegistryKey
regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Classes\Excel.SheetMacroEnabled.12", True)
regKey.SetValue("BrowserFlags", 2147486208, RegistryValueKind.DWord)
regKey.Close()
End Sub
戻り値:
The type of the value object did not match the specified RegistryValueKind or the object could not be properly converted.