Vb.net 为注册表中的项设置REG-BINARY值。-Visual Basic

Vb.net 为注册表中的项设置REG-BINARY值。-Visual Basic,vb.net,registry,Vb.net,Registry,我正在创建一个工具来更改注册表中的项。我要设置的RegistryKey是一个REG_二进制文件,我要将其更改为一个文本框条目 因此,在本例中,我要将其设置为的键的格式类似于: C9-0E-E8-04-4E-T6-E8-30-69-1B-E4-B7-63-5C-B2 我尝试过这样做,并且设置了一个newbyte(){}值。此外,我还更正了格式,将“-”替换为“,&H”。 这基本上是: "&H06, &H0E, &HE8, &H04, &H4E, &

我正在创建一个工具来更改注册表中的项。我要设置的RegistryKey是一个REG_二进制文件,我要将其更改为一个文本框条目

因此,在本例中,我要将其设置为的键的格式类似于:

C9-0E-E8-04-4E-T6-E8-30-69-1B-E4-B7-63-5C-B2
我尝试过这样做,并且设置了一个
newbyte(){}
值。此外,我还更正了格式,将“-”替换为“,&H”。 这基本上是:

"&H06, &H0E, &HE8, &H04, &H4E, &H62, &HE8, &H30, &H69, &H1B, &H58, &HB7, &H63, &H5C, &H7F"
我认为这是获得程序自动使用下面使用的
newbyte(){}
-方法所需信息的唯一方法(更好的方法是我问题的一部分)

这是我目前的代码:

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})
这里的问题在于(我相信):

从字符串“test3string”到“Byte”的转换是无效的。错误,因为我不能这样转换它


如何让程序自动将
TextBox1
项转换为兼容的REG-BINARY项,并将其成功设置到注册表?最终使用一种比上面更有效的方法。

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

Dim bytes() As Byte = Array.ConvertAll(
                          TextBox1.Text.Split("-"c),
                          Function(b) Convert.ToByte(b, 16)
                      )
keys.SetValue("Key", bytes)
Dim bytes()作为字节=数组(
文本框1.文本(“—”c),
(b) (b,16)
)

keys.SetValue(“Key”,bytes)
Hmm,这只是给了我一个“未为参数'converter'pf'公共共享函数[…]指定参数”-错误。我可能做错了什么。@user2489613:对不起,我把参数和
Array
搞混了!(
ConvertAll
Select
不同)。再试一次。
Dim bytes() As Byte = Array.ConvertAll(
                          TextBox1.Text.Split("-"c),
                          Function(b) Convert.ToByte(b, 16)
                      )
keys.SetValue("Key", bytes)