Registry value auslesen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Torenjk.

    Registry value auslesen

    Hallo leute,

    ich bin atm am verzweifeln. Bei google hab ich nichts ordentliches gefunden. Microsofts MDSN hilft nicht, da dort immer was falsches rauskommt. Egal... zu meiner Frage :D
    Ich möchte einen Key aus der registry auslesen und auf dem label1 anzeigen lassen. Ganz einfach oder? ^^

    Mein Code zur Zeit:

    VB.NET-Quellcode

    1. Dim key = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA", "KEY", Nothing).ToString
    2. MsgBox(key)


    Nur leider bekomme ich dann als Antwort: Screenshot (klick mich)

    Was muss ich am Code ändern?

    Achja, meine Imports noch:

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Imports Microsoft.VisualBasic.Devices
    3. Imports Microsoft.VisualBasic.FileIO
    4. Imports System.Text
    5. Imports System.Net
    6. Imports System.Security.AccessControl
    7. Imports System.Security.Principal


    Lg Torenjk

    Torenjk schrieb:

    Was muss ich am Code ändern?
    Wohl nix.
    Ich habe diesen Key nicht, Du hast ihn ggf. auch nicht!
    Ich hab mal einen anderen genommen, da funktioniert es:

    VB.NET-Quellcode

    1. 'Dim key = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA", "KEY", Nothing).ToString
    2. Dim key = Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ATI Technologies\Install\AMD APP SDK Runtime", "WinNT", Nothing).ToString
    3. MessageBox.Show(key)

    -----
    Öffne mal über Start ==> RegEdit und überzeuge Dich davon, ob es diesen Key auch gibt.
    Nutze die Funktionalität Schlüsselnamen kopieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Torenjk schrieb:


    VB.NET-Quellcode

    1. Dim key =
    2. Registry.GetValue(
    3. "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA",
    4. "KEY",
    5. Nothing).ToString
    6. MsgBox(key)


    Nur leider bekomme ich dann als Antwort: System.Byte[]


    Es hilft immer mal auch in die Registry zu schauen was da eigentlich drin ist. Ich kenne das Spiel "ArmA" nicht (ist doch ein Spiel, richtig?) demzufolge kann ich die Registry-Einträge hier nicht verifizieren, aber ich wette 100 Euro, dass der Wert "KEY" im genannten Schlüssel vom Type "Binärwert" ist.

    Und nun machst du damit folgendes:
    Registry.GetValue("...", "KEY", Nothing) => liefert, da der Inhalt ein Binärwert ist, ein Byte-Array zurück.
    Und (Byte[]).ToString liefert... exakt! "System.Byte[]" als String. Wenn du aus den gelesenen Bytes einen String bauen willst, musst du über Encoder gehen, die Byte-Arrays eben in Strings umwandeln können.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.