无法使用 C# 读取注册表值



我有点麻烦。我在学校做一个编程项目,我需要使用C#从注册表中读取所有的系统信息。现在我正在使用Microsoft.Win32访问寄存器,但我不知道在哪里可以找到所有需要的信息(我已经找到了CPU、GPU、MB和BIOS,但在哪里可以发现更有用的数据?比如连接的驱动器或RAM数量等。(

此外,由于某些原因,我无法提供GPU名称。这是代码(我使用的是WinForm(:

string gpu = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinSAT", "PrimaryAdapterString", null);
txtGPU.Text = "Your GPU is: " + gpu;

但由于某种原因,它不存在(我只看到文本"Your GPU is",但没有GPU的名称。我使用了相同的技巧来显示CPU名称,它起了作用(。

最后一件事是,在HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor中,有作为逻辑核心数量的文件夹。如何计数文件夹以显示逻辑核心的数量?

感谢所有的帮助者!很抱歉我是个新手。。

试试这个。您有null,因为在默认VS中读取32x注册表。您需要设置为64倍。

string subkey = @"SOFTWAREMicrosoftWindows NTCurrentVersionWinSAT";

RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
string value = localKey.OpenSubKey(subkey).GetValue("PrimaryAdapterString").ToString();

最新更新