我正在创建一个工具来更改注册表中的密钥。我想设置的RegistryKey是一个REG_BINARY,我想要它改变的是一个文本框条目。
所以在这种情况下,我希望将其设置为的键的格式是这样的:
C9-0E-E8-04-4E-T6-E8-30-69-1B-E4-B7-63-5C-B2
我尝试过这样做,并将我设置为New Byte() {}
值。另外,我更正了格式,将“ - ”替换为“,& H”。
这基本上是这样的:
"&H06, &H0E, &HE8, &H04, &H4E, &H62, &HE8, &H30, &H69, &H1B, &H58, &HB7, &H63, &H5C, &H7F"
我认为这是获取程序需要自动使用New Byte() {}
- 我正在使用的方法所需信息的唯一方法(更好的方法是这是我的问题的一部分)。
到目前为止,这是我的代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Test As String = TextBox1.Text
Dim Test2 As String = Test.Replace("-", ", &H")
Dim Test3 = "&H" + Test2
Dim keys As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\etc\etc", True)
keys.SetValue("Key", New Byte() {Test3})
这里的问题在于(我相信):
keys.SetValue("Key", New Byte() {Test3})
我收到Conversion from string "Test3-string" to 'Byte' is not valid.
错误,因为我根本无法将其转换为此类错误。
如何让程序自动将TextBox1
条目转换为兼容的REG-BINARY密钥并成功将其设置为注册表?最终使用比上面更有效的方式。
答案 0 :(得分:0)
字符串不能像这样变成数组。但是,您可以在-
上拆分并将每个部分转换为Byte
。
Dim bytes() As Byte = Array.ConvertAll(
TextBox1.Text.Split("-"c),
Function(b) Convert.ToByte(b, 16)
)
keys.SetValue("Key", bytes)