为注册表中的键设置REG-BINARY值。 - Visual Basic

时间:2013-06-15 21:15:02

标签: vb.net registry

我正在创建一个工具来更改注册表中的密钥。我想设置的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密钥并成功将其设置为注册表?最终使用比上面更有效的方式。

1 个答案:

答案 0 :(得分:0)

字符串不能像这样变成数组。但是,您可以在-上拆分并将每个部分转换为Byte

Dim bytes() As Byte = Array.ConvertAll(
                          TextBox1.Text.Split("-"c),
                          Function(b) Convert.ToByte(b, 16)
                      )
keys.SetValue("Key", bytes)