c#如何在注册表中写入十六进制值,而不是十进制值?

时间:2012-07-19 21:18:41

标签: c#

如何在注册表中写入DWORD十六进制值?而不是十进制值,就像在这个代码示例中一样?

RegistryKey key = Registry.LocalMachine;
key = klase.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Windows");
key.SetValue("CSDVersion2", "100", RegistryValueKind.DWord);
key.Close(); 

解决方案是!

RegistryKey key = Registry.LocalMachine;
key = klase.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Windows");
key.SetValue("CSDVersion2", Convert.ToInt32("100", 16), RegistryValueKind.DWord);
key.Close(); 

2 个答案:

答案 0 :(得分:3)

SetValue接受一个对象,所以你可以给它一个简单的整数。我会做这样的事情:

key.SetValue("CSDVersion2", 0x100, RegistryValueKind.DWord);

将CSDVersion2设置为0x100十六进制或256十进制。

答案 1 :(得分:0)

使用Convert.ToInt32(...)重载。

string strHexValue = Convert.ToInt32("100", 16).ToString();

其中16是基础。