我有点麻烦。我在学校做一个编程项目,我需要使用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();