C#注册表子项双字值

时间:2017-04-04 10:22:46

标签: c# set registry dword

我正在制作一个程序,看看是否存在Registry中的子键,如果它不存在,它将创建一个带有值(dword)的子键。正在创建这个程序来替换人们(非程序员)必须运行以执行.reg文件的.bat文件,以便我上面列出的东西,对用户来说不是很吸引人,这就是我制作这个程序的原因。

.reg文件设置我想要设置为dword的键,但该值最后有一个'c'(这就是它的样子):

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"ScheduledInstallTime"=dword:0000000c

我的c#代码如下所示:

RegistryKey rk = Registry.LocalMachine.CreateSubKey(Globais.subkeyWU + @"\AU");
rk.SetValue("ScheduledInstallTime", 0000000c, RegistryValueKind.DWord);

问题是.SetValue函数在值的末尾不接受c,我的猜测是它只能是数字,因为它是一个dwrod(不确定),所以,annyone知道我是怎么做的,bicicly,做.reg文件正在做同样的事情?也许是十六进制值,我不知道怎么用C#...

annyway,这是一个关于它在regedit中的外观的打印屏幕(.reg文件执行此操作):

enter image description here

无论如何,谢谢!

2 个答案:

答案 0 :(得分:3)

在阅读了我的帖子中的评论之后,我可以发出自己的问题!

我的问题的解决方案是:

rk.SetValue("ScheduledInstallTime", 0x0000000c, RegistryValueKind.DWord);

rk.SetValue("ScheduledInstallTime", 12, RegistryValueKind.DWord);

因为即时尝试在注册表中存储十六进制值,我要么将其翻译为十进制或输入完整的十六进制值,就像我上面所做的那样。

感谢您的评论,真的让我理解并解决了我的问题!

答案 1 :(得分:1)

0000000c 替换为 12

rk.SetValue("ScheduledInstallTime", 12, RegistryValueKind.DWord);