How can I read binary data from registry to byte array
14,126
To write a byte array to registry use following code
Byte[] value = new byte[]{
0x4a,0x03,0x00,0x00,
0x45,0x02,0x00,0x00,
0xb7,0x00,0x00,0x00,
0x9d,0x00,0x00,0x00
};
RegistryKey key = Registry.CurrentUser.CreateSubKey(KeyName);
key.SetValue(@"Software\AppName\Key", value, RegistryValueKind.Binary);
To Retrieve the data back from registry into Byte[] format use following:
RegistryKey key = Registry.CurrentUser.OpenSubKey(KeyName);
byte[] Data = (byte[]) key.GetValue(@"Software\AppName\Key", value);
Note: CurrentUser
is name of the root for your Key location and points to HKEY_CURRENT_USER
Author by
AaA
Updated on July 20, 2022Comments
-
AaA almost 2 years
I saved a byte array to registry using following code
Byte[] value = new byte[16]{ 0x4a,0x03,0x00,0x00, 0x45,0x02,0x00,0x00, 0xb7,0x00,0x00,0x00, 0x9d,0x00,0x00,0x00 }; RegistryKey key = Registry.CurrentUser.CreateSubKey(KeyName); key.SetValue(@"Software\Software\Key", value, RegistryValueKind.Binary);
Here is the key created using above code:
[HKEY_CURRENT_USER\Software\Software\Key] "LOC"=hex:4a,03,00,00,45,02,00,00,b7,00,00,00,9d,00,00,00
Now I want to read the same data back to byte array format. Following code can read the same data but the output is of type object.
RegistryKey key = Registry.CurrentUser.OpenSubKey(KeyName); object obj = key.GetValue(@"Software\Software\Key", value);
Here casting to byte[] does not work. I know I can use serializer or streams to achieve this task. I would like to know if there is an easier way to read data back to byte[] type (A two liner code)?
Please note this question is in C++
-
AaA over 11 yearsThanks for your answer but
Convert.ToByte
returns asingle byte