c#怎么编程读取计算机硬件信息??比如要获取内存容量,CPU参数,硬盘容量等...

我要用C#编程获取计算机硬件的详细信息~~~....
2024-11-03 11:34:29
推荐回答(4个)
回答1:

一.修改我的电脑右键所看到的硬件信息(CPU和RAM)
工具:eXeScope 6.50汉化版
文件:%windir%\system32\sysdm.cpl
打开sysdm.cpl 点"资源"-"对话框"-"101"
在中框看到有"Link Window" 字样,共有9行
第3行到第6行"Link Window"全把"可见"的勾取消
第7行的坐标(X,Y)为(110,190)内容为: 英特尔 酷睿 2 双核处理器E6320
第8行的坐标(X,Y)为(110,200)内容为:4.7 GHz
第9行的坐标(X,Y)为(110,210)内容为:2048 MB 的内存现在,
注:以上的坐标值根据你自己实际情况而定,只要能对其即可。
二.再来修改在dxdiag程序中显示的硬件信息(CPU、aRAM、VGA)

文件:%windir%\system32\dxdiag.exe
1. 打开dxdiag.exe 点"资源"-"对话框"-"6201"-"中文(中国)"
找到中框的"Static:处理器:" 标题改为:"处理器: 英特尔酷睿2 双核处理器E6320,参数(120,182,200)分别为(X,Y,宽度)下面不再作说明,把"Static:处理器:"下面的"Static:x"的"可见"的勾去掉,
2. 找到中框的"Static:内存:" 标题改为:"内存: 2048MB RAM" ,参数(55,195,140)
和上面操作一下,把 "Static:内存:" 下面的 "Static:x" 的 "可见" 的勾去掉
3. 找到中框的"Static:页面文件:" 标题改为:"页面文件: 8MB 已用,2040MB 可用" 附我参数(99,208,140)和上面操作一下,把 "Static:页面文件:" 下面的 "Static:x" 的 "可见" 的勾去掉
4. 修改VGA信息:打开dxdiag.exe 点"资源"-"对话框"-"6203"-"中文(中国)",找到中框的"Static:名称:" 标题改为:"名称: NVIDIA GeForce FX 7800GS",在以上操作一样把"Static:名称:"下面的"Static:x" 的 "可见" 的勾去掉
5. 找到中框的"Static:制造商:" 标题改为:"制造商: NVIDIA",在以上操作一样把"Static:制造商:"下面的"Static:x" 的 "可见" 的勾去掉
6. 找到中框的"Static:芯片类型:" 标题改为:"芯片类型: GeForce FX 7800GS",在以上操作一样把"Static:芯片类型:"下面的"Static:x" 的 "可见" 的勾去掉
7. 找到中框的"Static:估计内存总数:" 标题改为:"估计内存总数: 1024.0 MB",在以上操作一样把"Static:估计内存总数:"下面的"Static:x" 的 "可见" 的勾去掉。
三. 修改设备管理器里的硬件信息(CPU、VGA)工具:注册表编辑器(regedit.exe)
1. 打开REGEDIT 找到以下表项
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI\GenuineIntel_-_x86_Family_15_Model_4\_0]
右键点"_0"表项-权限-添加……说比做累!上面的操作目的就是把当用操作用户添加到权限列表中要求要完全控制权限,更改右框"FriendlyName"字符串的数值如下:
"FriendlyName"="英特尔? 酷睿?2 双核处理器E6320"
2.找到以下表项
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI]下的第十三个表项的第一个表项(与系统有关,有的不是在第十三个表项,自己找找),我这里是
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\VEN_10DE&DEV_0322&SUBSYS_00000000&REV_A1\4&299ccbfa&0&0008]
在右框能看到有你显卡在设备管理器里显示的设备名称就对了,给4&299ccbfa&0&0008加入当前用户权限后
更改键值如下:
"DeviceDesc"="NVIDIA GeForce FX 7800GS"

四. 识别系统硬件配置信息是否被修改
修改系统硬件信息足以欺骗只懂一般计算机常识的人,运行dxdiag和电脑右键所看到的硬件配置信息一般存储在系统文件里,像上面的就是修改相应文件和注册表即可欺骗;如果不看电脑系统相应文件,而是直接检测电脑硬件信息,被修改的系统信息就无效了,像这样的软件很多,我一般用CPU-Z.现在怎么修改和怎么查看是否被修改的教程已经说完,希望朋友们买电脑的时候不会再被骗了。
注:修改前最好把文件拷贝出来再修改,然后再替换;如果出现修改的文件替换不了源文件,就在dos下替换或者在安全模式下用administrator用户登陆替换。

前天我修改了我办公电脑的硬件信息,昨天我查看了我的电脑硬件信息,发现注册表里cpu信息还原了,我打开设备管理器,查看处理器信息,发现其信息还原,查看前天修改的其他信息,没有还原,只有注册表里的cpu信息还原了(显示在设备管理器里的处理器信息),我再一次修改重启电脑后发现又还原了,怎么才能使其不还原呢?我想到用在启动脚本里添加批处理文件,于是写了个批处理文件,这个批处理文件总是写不好,添加不了到注册表,在网上找了一些资料,别人的方法在我的电脑上就是不行,经过多次的修改终于可以了,批处理文件内容如下:

@echo Windows Registry Editor Version 5.00>>lm.reg
@echo >>lm.reg
@echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI\GenuineIntel_-_x86_Family_15_Model_4\_0]>>lm.reg
@echo "FriendlyName"="英特尔 酷睿 2 双核处理器E6320">>lm.reg
regedit /s lm.reg

回答2:

计算机是一个整体,具体也要看什么应用,才能看配件对程序运行速度的影响,具体如下:
1.cpu,主要看a.主频;b.架构;c.缓存容量;d.功耗。
新架构的执行效率高;主频高的速度快;缓存(1,2甚至3级缓存)容量大的,指令,数据存取命中率高(不用频繁的从内存中读取指令或数据),程序运行效率高(特别是运行大量浮点运算的程序);采用新制程如35纳米等等,芯片面积更小,功耗更低。
2.内存,硬盘,内存看容量跟速度,硬盘看容量,转速,缓存大小,读写速度。内存大的操作系统整体更流畅,不用频繁的读写虚拟内存(其实就是硬盘空间中开辟的一个虚拟空间),内存直接跟cpu通讯,速度快整体运行速度快;硬盘关系到你程序,资料的存储,速度快的存取快,缓存大的存取效率高,硬盘寿命更长。
3.i系列跟P系列的差别,主要看这里:

大概是P系列是低功耗的型号,25w的,当然i系列也有更低功耗的,一般现在i系列是主流配置,P系列属于上一代的产品。
cpu目前应付主流应用基本绰绰有余。
4.cs目前任何现在配置的机器都能流畅运行。
魔兽的话内存最好1G以上才不会卡。
这两个游戏,对于现在配的主流配置的机器来说也是游刃有余的。
5.整机中,主板也很重要,关系机器整体性能的协调和稳定性;
显卡对于3D游戏的影响最大,性能好的跑3D游戏才能流畅。

以上就是我的一点浅见,希望你满意!

回答3:

代码如下(具体看注释):
view plaincopy to clipboardprint?

using System;

using System.Management;

namespace Soyee.Comm

{

/// summary

/// Computer Information

/// /summary

public class Computer

{

public string CpuID;

public string MacAddress;

public string DiskID;

public string IpAddress;

public string LoginUserName;

public string ComputerName;

public string SystemType;

public string TotalPhysicalMemory; //单位:M

private static Computer _instance;

public static Computer Instance()

{

if (_instance == null)

_instance = new Computer();

return _instance;

}

protected Computer()

{

CpuID=GetCpuID();

MacAddress=GetMacAddress();

DiskID=GetDiskID();

IpAddress=GetIPAddress();

LoginUserName=GetUserName();

SystemType=GetSystemType();

TotalPhysicalMemory=GetTotalPhysicalMemory();

ComputerName=GetComputerName();

}

string GetCpuID()

{

try

{

//获取CPU序列号代码

string cpuInfo = ;//cpu序列号

ManagementClass mc = new ManagementClass(Win32_Processor);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

cpuInfo = mo.Properties[ProcessorId].Value.ToString();

}

moc=null;

mc=null;

return cpuInfo;

}

catch

{

return unknow;

}

finally

{

}

}

string GetMacAddress()

{

try

{

//获取网卡硬件地址

string mac=;

ManagementClass mc = new ManagementClass(Win32_NetworkAdapterConfiguration);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

if((bool)mo[IPEnabled] == true)

{

mac=mo[MacAddress].ToString();

break;

}

}

moc=null;

mc=null;

return mac;

}

catch

{

return unknow;

}

finally

{

}

}

string GetIPAddress()

{

try

{

//获取IP地址

string st=;

ManagementClass mc = new ManagementClass(Win32_NetworkAdapterConfiguration);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

if((bool)mo[IPEnabled] == true)

{

//st=mo[IpAddress].ToString();

System.Array ar;

ar=(System.Array)(mo.Properties[IpAddress].Value);

st=ar.GetValue(0).ToString();

break;

}

}

moc=null;

mc=null;

return st;

}

catch

{

return unknow;

}

finally

{

}

}

string GetDiskID()

{

try

{

//获取硬盘ID

String HDid=;

ManagementClass mc = new ManagementClass(Win32_DiskDrive);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

HDid = (string)mo.Properties[Model].Value;

}

moc=null;

mc=null;

return HDid;

}

catch

{

return unknow;

}

finally

{

}

}

/// summary

/// 操作系统的登录用户名

/// /summary

/// returns/returns

string GetUserName()

{

try

{

string st=;

ManagementClass mc = new ManagementClass(Win32_ComputerSystem);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

st=mo[UserName].ToString();

}

moc=null;

mc=null;

return st;

}

catch

{

return unknow;

}

finally

{

}

}

/// summary

/// PC类型

/// /summary

/// returns/returns

string GetSystemType()

{

try

{

string st=;

ManagementClass mc = new ManagementClass(Win32_ComputerSystem);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

{

st=mo[SystemType].ToString();

}

moc=null;

mc=null;

return st;

}

catch

{

return unknow;

}

finally

{

}

}

/// summary

/// 物理内存

/// /summary

/// returns/returns

string GetTotalPhysicalMemory()

{

try

{

string st=;

ManagementClass mc = new ManagementClass(Win32_ComputerSystem);

ManagementObjectCollection moc = mc.GetInstances();

foreach(ManagementObject mo in moc)

回答4:

你的qq是多少,我发给你,不过我只有一个获取内存的参数的,cpu参数的那些方法我还没有看到,你到时看一下msdn吧