Frage

Ich habe einen Registrierungswert, der als binärer Wert gespeichert (REG_BINARY), die Informationen über einen Dateipfad. Der Wert wird in einen Byte-Array ausgelesen. Aber wie kann ich es in einen lesbaren String umwandeln?

Ich habe über system.text.encoding.ASCII.GetString (Wert) gelesen, aber das funktioniert nicht. Soweit ich den Registrierungswert ist willkürlich Binärdaten und nicht ASCII kennen gelernt haben, die der Grund für das Verfahren ist nutzlos, Daten zu erzeugen.

Weiß jemand, wie ich die Daten konvertieren?

Beispiel: (Ein Stück des Eintrags)

01 00 00 00 94 00 00 00 14 00 00 00 63 00 3A 00 5C 00 
70 00 72 00 6F 00 67 00 72 00 61 00 6D 00 6d 00 65 00 
5C 00 67 00 65 00 6D 00 65 00 69 00 6E 00 73 00 61 00 
6D 00 65 00 20 00 64 00 61 00 74 00 65 00 69 00 65 00 
6E 00 5C

Durch die regedit dies sein soll:

............c.:.\.p.r.o.g.r.a.m.m.e.\.g.e.m.e.i.n.s.a.m.e. .d.a.t.e.i.e.n.\

Der Eintrag selbst wurde von Outlook erstellt. Es ist ein Eintrag für einen behinderten Addin Artikel (Elastizität)

War es hilfreich?

Lösung

Nun, es ist nicht beliebig Binärdaten - es ist Textdaten in einig Art der Codierung. Sie müssen herausfinden, was die Codierung ist.

würde ich nicht überrascht, wenn Encoding.Unicode.GetString(value) gearbeitet - aber wenn das nicht der Fall, schreiben Sie bitte eine Probe (in hex) und ich werde sehen, was ich tun kann. Was bedeutet die Dokumentation, was auch immer die Daten dort setzen ist in sagen?

EDIT: Es sieht aus wie Encoding.Unicode dein Freund ist, aber ausgehend von Byte 12. Verwendung

Encoding.Unicode.GetString(bytes, 12, bytes.Length-12)

Andere Tipps

hatte ich auch dieses Problem und ich auf diese Weise gelöst:

Ich hatte eine Variable als deklariert:

Dim encoding As System.Text.Encoding = System.Text.Encoding.Unicode

Dann mache ich dies in einer Schleife:

    For Each Val As String In ValueName
        data = k.GetValue(Val)
        ListRecent.Items.Add(Val & ": " & encoding.GetString(data))
    Next

So in listbox genannten "ListRecent" Ich habe die komplette Liste der zuletzt erhaltenen

Mit

Function Microsoft.Win32.RegistryKey.GetValue(name as String) as Object

Schauen Sie auch bei System.Text.Encoding und System.Text.Encoding.Unicode

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top