Wie kann ich umwandeln einen REG_BINARY-Wert aus der registry in einen string ? (vb.net)
Habe ich einen registry-Wert, der gespeichert ist, als ein Binärwert (REG_BINARY), die Informationen über einen Dateipfad. Der Wert wird Lesen in einen byte-array. Aber wie kann ich die Umwandlung in einen lesbaren string?
Ich gelesen habe system.text.- Codierung.ASCII.GetString(value) aber das funktioniert nicht. Soweit ich das kennengelernt habe, den registry-Wert ist beliebige binäre Daten und nicht-ASCII-was ist der Grund für das Verfahren zur Herstellung von nutzlosen Daten.
Weiß jemand wie kann ich umwandeln der Daten?
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
Aufgrund der regedit dieser 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 wurde erstellt von Outlook. Es ist ein Eintrag für einen deaktivierten add-Element (Ausfallsicherheit)
InformationsquelleAutor Marcus | 2008-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, es ist nicht beliebigen Binärdaten - text-Daten in einige Art der Codierung. Sie müssen herausfinden, was die Codierung ist.
Ich würde mich nicht Wundern, wenn
Encoding.Unicode.GetString(value)
gearbeitet - aber wenn das nicht funktioniert, poste bitte ein sample (in hex) und ich werde sehen was ich tun kann. Was bedeutet die Dokumentation, was die Daten sagen?EDIT: Es sieht aus wie die Codierung.Unicode ist dein Freund, aber ab byte 12. Verwenden
Der Grund, es nicht funktionieren wird, weil der führende 12 bytes. Graben die ersten 12 bytes, und übergeben Sie den rest zu Unicode.GetString().
Perfekt, es funktioniert! Vielen Dank für Eure Hilfe 🙂
InformationsquelleAutor Jon Skeet
Ich hatte dieses problem auch und ich löste auf diese Weise:
Hatte ich deklariert eine variable als:
Dann Tue ich dies in einer Schleife:
Also in der listbox namens "ListRecent" habe ich erhalten, die komplette Liste der letzten
InformationsquelleAutor Roberto
Verwenden
Schauen auch
System.Text.Encoding
undSystem.Text.Encoding.Unicode
InformationsquelleAutor abatishchev