设置注册表项hex7

时间:2016-07-20 11:57:28

标签: c# windows registry

我一直在寻找一个用c#设置注册表项的功能。

显然有方法Registry.SetValue(KEY,valueName,value,registryValueKind)

[...其中valueName是编辑值的名称,KEY是主键名称,registryValueKind是要进行的更改类型]

如果你仔细看看registryValueKind-Enum,有8种类型:

  • DWord,String,ExpandString,Binary,MultiString,QWord,Unknown和 无。

Msdn-Article中描述了不同的数据类型:

  • REG_SZ,REG_MULTI_SZ,REG_DWORD,REG_QWORD,REG_BINARY,REG_EXPAND_SZ,REG_HEX。

所以我想知道如何在Registry.SetValue()的帮助下存储hex(7)-value [因此是REG_HEX-value]。

此外我想知道如何保存像hex(7)这样的值:56,00,45,00,4e,00,30,00,00,00,4c,00,4f,00,4f,00,50 ,00,42,\   00,41,00,43,00,4b,00,00,00,00,00,除了由“\”分隔的十六进制(7)外。

谢谢你的支持!

1 个答案:

答案 0 :(得分:1)

没有"十六进制值",十六进制只是二进制值的文本表示。

你想要的是:

Registry.SetValue(
    "HKEY_CURRENT_USER\\MyKeyName", 
    "MyValue", 
    new byte[] { 0x56, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x4f, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x42, 0x00, 0x41, 0x00, 0x43, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00 }, 
    RegistryValueKind.Binary);