none
My.Computer.Registry.GetValueで、文字列が読み出せない。 RRS feed

  • 質問

  • My.Computer.Registry.GetValueで、文字列が読み出せません。
    My.Computer.RegistryクラスのGetValueを使い、Registryを読み込もうとしているのですが、うまくいきません。
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MainのDefalut Download Directryを読み込むだけのプログラムを作りたいのですが、何が間違っているのでしょうか?
    プログラム中、合わせて、FullScreenを読みだしてみましたが、これは問題なく読み出すことができました。

    -プログラム-
    Option Explicit On
    Option Strict On

    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim keyName = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"
            CheckRegistry(My.Computer.Registry.GetValue(keyName, "Defalut Download Directry", String.Empty))
            CheckRegistry(My.Computer.Registry.GetValue(keyName, "FullScreen", String.Empty))
        End Sub
        Public Sub CheckRegistry(data As Object)
            If TypeOf data Is String Then
                TextBox1.Text += "String data: " & CStr(data) & vbCrLf
            ElseIf TypeOf data Is Integer Then
                TextBox1.Text += "Integer data: " & CInt(data) & vbCrLf
            ElseIf TypeOf data Is String() Then
                TextBox1.Text += "String array: "
                Dim dataArray() As String = DirectCast(data, String())
                For ctr As Integer = LBound(dataArray, 1) To UBound(dataArray, 1)
                    TextBox1.Text += dataArray(ctr)
                Next
                TextBox1.Text += vbCrLf
            ElseIf TypeOf data Is Byte() Then
                TextBox1.Text += "Binary data: "
                Dim byteArray() As Byte = DirectCast(data, Byte())
                For ctr As Integer = LBound(byteArray, 1) To UBound(byteArray, 1)
                    TextBox1.Text += " " & Hex(byteArray(ctr)) & " "
                Next
                TextBox1.Text += vbCrLf
            Else
                TextBox1.Text = "Unknown data type..." & vbCrLf
            End If
        End Sub
    End Class
    -実行結果-
    String data:
    String data: no
    2017年10月8日 8:02

回答

  • CheckRegistry(My.Computer.Registry.GetValue(keyName, "Defalut Download Directry", String.Empty))

    の箇所のスペルは"Default Download Directory"ではないでしょうか。
    レジストリエディタなどで正しい綴りを確認してみてください。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2017年10月8日 8:28
    • 回答としてマーク ノラネコ 2017年10月8日 9:25
    2017年10月8日 8:26

すべての返信

  • CheckRegistry(My.Computer.Registry.GetValue(keyName, "Defalut Download Directry", String.Empty))

    の箇所のスペルは"Default Download Directory"ではないでしょうか。
    レジストリエディタなどで正しい綴りを確認してみてください。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2017年10月8日 8:28
    • 回答としてマーク ノラネコ 2017年10月8日 9:25
    2017年10月8日 8:26
  • gekkaさん

    おっしゃられる通り、私の単純なミスでした!

    どうもすいません。今は正常に起動しています!

    どうもありがとうございました。

    2017年10月8日 9:20