Вместо того, чтобы читать реестр, я бы посоветовал вам использовать WMI, в частности Win32_ComputerSystem
, чтобы найти количество процессоров, и Win32_Processor
, чтобы найти информацию о нем, а Win32_ComputerSystem.TotalPhysicalMemory
даст ОЗУ.
Я уверен, что есть какой-то способ поднять видеокарту (ы) (помните, что их может быть несколько).
Вот статья с некоторыми примерами для получения различных данных:
http://msdn.microsoft.com/en-us/library/aa394587%28VS.85%29.aspx
Примеры в VBScript, но он похож, я думаю, что код C # для получения оперативной памяти будет выглядеть примерно так:
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem") ;
ManagementObjectCollection coll = query.Get();
foreach( ManagementObject mo in coll )
{
Console.WriteLine(mo["totalphysicalmemory"].ToString());
}