1

レジストリのキーを変更するツールを作成しています。設定したい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() {}これが、プログラムが以下で使用している -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 に答える