C#注册表子项双字值

jey*_*jow 5 c# registry dword set

我正在制作一个程序,查看注册表中是否存在子项,如果不存在,它将创建一个带有值(dword)的子项。正在创建此程序来替换人们(非程序员)必须运行以执行.reg文件的.bat文件,以执行上面列出的操作,而这对用户并不太吸引,这就是为什么要制作此程序。

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"ScheduledInstallTime"=dword:0000000c
Run Code Online (Sandbox Code Playgroud)

我的C#代码如下所示:

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

问题是.SetValue函数在值的末尾不接受c,我的猜测是它只能是数字,因为它是dwrod(不确定),因此,annyone知道我怎么做,基本上.reg文件正在做什么?也许是十六进制值,我不知道如何用C#制作...

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

在此处输入图片说明

无论如何,谢谢!

jey*_*jow 7

阅读我帖子中的评论后,我可以提出我自己的问题!

我的问题的解决方案是:

rk.SetValue("ScheduledInstallTime", 0x0000000c, RegistryValueKind.DWord);
Run Code Online (Sandbox Code Playgroud)

或者

rk.SetValue("ScheduledInstallTime", 12, RegistryValueKind.DWord);
Run Code Online (Sandbox Code Playgroud)

因为我试图在注册表中存储一个十六进制值,所以我要么将它转换为十进制,要么输入完整的十六进制值,就像我上面所做的那样。

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