1

我正在创建一个工具来更改注册表中的键。我要设置的 RegistryKey 是一个 REG_BINARY,我希望它更改为一个文本框条目。

所以在这种情况下,我想要设置的键的格式是这样的:

C9-0E-E8-04-4E-T6-E8-30-69-1B-E4-B7-63-5C-B2

我已经尝试过这样做,并将 i 设置为一个New Byte() {}值。另外,我更正了格式,将“-”替换为“,&H”。这基本上使它:

"&H06, &H0E, &HE8, &H04, &H4E, &H62, &HE8, &H30, &H69, &H1B, &H58, &HB7, &H63, &H5C, &H7F"

我认为这是获取程序需要自动使用New Byte() {}我在下面使用的 -method 的信息的唯一方法(更好的方法是我的问题的一部分)。

到目前为止,这是我的代码:

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 键并成功将其设置到注册表?最终使用比上述更有效的方法。

4

1 回答 1

0

字符串不能变成那样的数组。但是,您可以做的是拆分-并将每个部分转换为Byte.

Dim bytes() As Byte = Array.ConvertAll(
                          TextBox1.Text.Split("-"c),
                          Function(b) Convert.ToByte(b, 16)
                      )
keys.SetValue("Key", bytes)
于 2013-06-15T21:20:44.793 回答