cpu序列号????????

das521 2008-08-22 06:00:11
string strCpuID = "111";
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();


foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}

}
catch
{

}
this.textBox1.Text = strCpuID;
网上的代码,不知道为什么在我机器上获取不了cpu序列号?高手指教
...全文
260 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
春天的气息 2008-08-26
  • 打赏
  • 举报
回复

string strCpuID = "111";
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();


foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}

}
catch
{

}
this.textBox1.Text = strCpuID;

tian_huang 2008-08-26
  • 打赏
  • 举报
回复
没有using System.Management引用吧
wdgphc 2008-08-25
  • 打赏
  • 举报
回复
你这个程序是检测主板的,我的输出为
Caption --- 底板
ConfigOptions ---
CreationClassName --- Win32_BaseBoard
Depth ---
Description --- 底板
Height ---
HostingBoard --- True
HotSwappable ---
InstallDate ---
Manufacturer --- ASUSTeK Computer INC.
Model ---
Name --- 底板
OtherIdentifyingInfo ---
PartNumber ---
PoweredOn --- True
Product --- P4P800-X
Removable ---
Replaceable ---
RequirementsDescription ---
RequiresDaughterBoard ---
SerialNumber --- MB-1234567890
SKU ---
SlotLayout ---
SpecialRequirements ---
Status ---
Tag --- Base Board
Version --- Rev 1.xx
Weight ---
Width ---

原来的程序是测CPU的,输出为
AddressWidth --- 32
Architecture --- 0
Availability --- 3
Caption --- x86 Family 15 Model 4 Stepping 1
ConfigManagerErrorCode ---
ConfigManagerUserConfig ---
CpuStatus --- 1
CreationClassName --- Win32_Processor
CurrentClockSpeed --- 2399
CurrentVoltage --- 14
DataWidth --- 32
Description --- x86 Family 15 Model 4 Stepping 1
DeviceID --- CPU0
ErrorCleared ---
ErrorDescription ---
ExtClock --- 133
Family --- 2
InstallDate ---
L2CacheSize --- 0
L2CacheSpeed ---
LastErrorCode ---
Level --- 15
LoadPercentage --- 10
Manufacturer --- GenuineIntel
MaxClockSpeed --- 2399
Name --- Intel(R) Celeron(R) CPU 2.40GHz
NumberOfCores --- 1
NumberOfLogicalProcessors --- 1
OtherFamilyDescription ---
PNPDeviceID ---
PowerManagementCapabilities ---
PowerManagementSupported --- False
ProcessorId --- BFEBFBFF00000F41
ProcessorType --- 3
Revision --- 1025
Role --- CPU
SocketDesignation --- CPU 1
Status --- OK
StatusInfo --- 3
Stepping --- 1
SystemCreationClassName --- Win32_ComputerSystem
SystemName --- SUNXU
UniqueId ---
UpgradeMethod --- 15
Version --- 型号 4,步进 1
VoltageCaps ---

输出是在 视图->输出 中查看的. 如果还没有,你看看系统属性中是不是有驱动没有安装正确啊.
wdgphc 2008-08-24
  • 打赏
  • 举报
回复

foreach (ManagementObject mo in moc)
{
foreach (PropertyData property in mo.Properties)
{
Console.Write(property.Name + " --- ");
try
{
Console.WriteLine(mo.Properties[property.Name].Value.ToString());
}
catch
{
Console.WriteLine();
}
}
break;
}


你看看输出有没有这一项,后面有没有数据,好像真的是有的可以有的不可以.
aaajedll 2008-08-24
  • 打赏
  • 举报
回复
學習
das521 2008-08-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wdgphc 的回复:]
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

加一句 MessageBox.Show(moc.Count.ToString());
看看是不是1
[/Quote]
这位大哥你好,正如你说的,是一,怎么解决呀
das521 2008-08-24
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wdgphc 的回复:]
C# code
foreach (ManagementObject mo in moc)
{
foreach (PropertyData property in mo.Properties)
{
Console.Write(property.Name + " --- ");
try
{
Console.WriteLine(mo.Properties[property.Name].Value.ToString());

[/Quote]
这为大哥,我试了,可是,什么都没有输出,我的程序是这样
ManagementObjectSearcher moc = new ManagementObjectSearcher("select * from Win32_baseboard");
foreach (ManagementObject mo in moc.Get())
{
foreach (PropertyData property in mo.Properties)
{
Console.Write(property.Name + " --- ");
try
{
Console.WriteLine(mo.Properties[property.Name].Value.ToString());
}
catch
{
Console.WriteLine();
}
}
break;
}有一点变化在第一个foreach语句,
wdgphc 2008-08-23
  • 打赏
  • 举报
回复
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

加一句 MessageBox.Show(moc.Count.ToString());
看看是不是1
das521 2008-08-23
  • 打赏
  • 举报
回复
各位大哥指教呀,小弟急用,呵呵
das521 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 das521 的回复:]
我的cpu是Intel 赛扬D
[/Quote]
补充一点,就是在别人机器上可以
das521 2008-08-22
  • 打赏
  • 举报
回复
我的cpu是Intel 赛扬D
wdgphc 2008-08-22
  • 打赏
  • 举报
回复
你得不到序列号的机器CPU是什么的?
cychris 2008-08-22
  • 打赏
  • 举报
回复
System.Management??
如果加了这个命名空间还错的话,那就郁闷了。
我上次也是 什么都对。自己机器上就是提示
ProcessorId 这里 未将对象引用到实例
但是换个机器 就可以了。
可郁闷了
HailRangar 2008-08-22
  • 打赏
  • 举报
回复
命名空间:System.Management?你们是在vs上调试的吗?为什么没有这个命名空间


请教并学习...
liuxiuming 2008-08-22
  • 打赏
  • 举报
回复
哪位大侠能给个完整代码?
我姓区不姓区 2008-08-22
  • 打赏
  • 举报
回复
调试一下看看哪个对象为空
das521 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 das521 的回复:]
引用 5 楼 das521 的回复:
如果不加catch的话,报错是未将对象引用到实例也就是这句代码出错 strCpuID = mo.Properties["ProcessorId"].Value.ToString();
加了catch以后就不报错了
[/Quote]
das521 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 das521 的回复:]
如果不加catch的话,报错是未将对象引用到实例也就是这句代码出错 strCpuID = mo.Properties["ProcessorId"].Value.ToString();
加了catch以后就不报错了
[/Quote]
das521 2008-08-22
  • 打赏
  • 举报
回复
如果不加catch的话,报错是未将对象引用到实例也就是这句代码出错 strCpuID = mo.Properties["ProcessorId"].Value.ToString();
加了catch以后就不报错了
yagebu1983 2008-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojlovecd 的回复:]
获取不了?出什么错?
[/Quote]
加载更多回复(3)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧