这是我的c#代码:
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersionMultimediaSystemProfile", true))
{
key.CreateSubKey("NetworkThrottlingIndex");
key.SetValue("NetworkThrottlingIndex", "0000000a", RegistryValueKind.DWord);
key.CreateSubKey("SystemResponsiveness");
key.SetValue("SystemResponsiveness", "00000000", RegistryValueKind.DWord);
key.CreateSubKey("NoLazyMode");
key.SetValue("NoLazyMode", "1");
}
所以这里发生的是,我得到了一个错误
系统。NullReferenceException
在线
key.CreateSubKey("NetworkThrottlingIndex");
因为密钥为null。
我检查了好几次,但这个键存在于我的注册表编辑器中。
你知道这里出了什么问题吗?
SOFTWARE注册表项会根据应用程序和Windows的大小进行重定向。
要通过x86/32位EXE(在64位Windows上(访问您的密钥,请请求64位注册表视图:
using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var key = hklm.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersionMultimediaSystemProfile", RegistryKeyPermissionCheck.ReadWriteSubTree))
{
...
}
还要注意,NetworkThrottlingIndex
是一个子键(即">文件夹"(,因此您不能设置其值,因为它没有。此外,您将使用十六进制文字作为DWORD值(0x0000000a
(,而不是字符串。