Leggere BINARY DATA dal registro di Windows

lunedì 11 giugno 2007 - 13.48

roccomita Profilo | Newbie

Salve a tutti,
ho un problemino. qualcuno saprebbe dirmi come leggere un valore binario dal registro di windows e ricavare la relativa stringa?
Mi spiego meglio, usando il metodo getValue().tostring() riesco a leggere i valori stringa dal registro, mentre usandolo con un valore binario mi restituisce sempre la stringa "system.byte[]".

Grazie

munissor Profilo | Senior Member

Il metodo ToString evita di usarlo a meno che tu non sappia bene cosa fai.

basta fare un cast al posto di tostring: (byte[])key.GetValue().

roccomita Profilo | Newbie

ti ringrazio x la risposta,
cmq intendevo convertire l'array di byte esadecimali in una stringa d icaratteri unicode.
credo di aver risolto anche se una volta convertito l'array, la stringa risultante presenta alcuni caratteri non validi. esiste un modo x ripulire la stringa?

munissor Profilo | Senior Member

La conversione in esadecimale si fa in questo modo:

byte[] bytes = ...;
StringBuilder bld = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
bld.Append(bytes[i].ToString("x2", CultureInfo.InvariantCulture));
}
string hex = bld.ToString();

roccomita Profilo | Newbie

ho provato il tuo metodo ma nn è quello che intendevo.
comunque ti spiego meglio.
io prelevo dal registro un oggetto byte[] contenente numeri (hex).
questo oggetto lo devo tradurre nella relativa stringa
allora ho provato a usare il metodo Encoding.unicode.getstring(byte[])
e ho ottenuto ciò ke volevo, xò insieme alla stringa, e precisamente prima e dopo di essa
ci sono caratteri invalidi che vorrei eliminare.
esiste un modo x farlo???
Grazie.

munissor Profilo | Senior Member

Si vede che la codifice non è corretta..prova UTF-8 o altri...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5