哪位大侠知道CPU 序号的编码规则?是否完全唯一?有没有固定位? 去intel 和amd的网站找文档 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 学过《操作系统》,计算机系的就全知道CPU的ID怎么编吗? 郁闷!刚刚测试取单位里面两台同时购买的相同配置的DELL电脑的CPU ID,居然CPU ID完全相同。该如何利用硬件信息区分两台不同的机器呢? CPU的ID肯定唯一可以使用WMI来取这个IDWMI网址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_1394controller.aspWMI在C#具体的写法可以自己搜索,很简单,就像数据库操作一样 硬盘的ID使用WMI取出来的不是硬件上的那个ID,如果要取硬件上的那个ID,可以搜索一下别人写的dll建议使用网卡的MAC地址,这个也肯定唯一,除非有厂商提供的相同的MAC地址的网卡 Windows 管理规范 (WMI) 是可伸缩的系统管理结构,它采用一个统一的、基于标准的、可扩展的面向对象接口。WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法。WMI 主要由系统管理应用程序开发人员和管理员用来访问和操作系统管理信息。WMI 可用于生成组织和管理系统信息的工具,使管理员或系统管理人员能够更密切地监视系统活动。例如,可以使用 WMI 开发一个应用程序,用于在 Web 服务器崩溃时呼叫管理员。将 WMI 与 .NET 框架一起使用WMI 提供了大量的规范以便为许多高端应用程序(例如,Microsoft Exchange、Microsoft SQL Server 和 Microsoft Internet 信息服务 (IIS))实现几乎任何管理任务。管理员可以执行下列任务: 监视应用程序的运行状况。 检测瓶颈或故障。 管理和配置应用程序。 查询应用程序数据(使用对象关系的遍历和查询)。 执行无缝的本地或远程管理操作。 WMI 结构由以下三层组成: 客户端 使用 WMI 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。 对象管理器 提供程序与客户端之间的中间装置,它提供一些关键服务,如标准事件发布和预订、事件筛选、查询引擎等。 提供程序 软件组件,它们捕获实时数据并将其返回到客户端应用程序,处理来自客户端的方法调用并将客户端链接到所管理的基础结构。 通过定义完善的架构向客户端和应用程序无缝地提供了数据和事件以及配置系统的能力。在 .NET 框架中,System.Management 命名空间提供了用于遍历 WMI 架构的公共类。除了 .NET 框架,还需要在计算机上安装 WMI 才能使用该命名空间中的管理功能。如果使用的是 Windows Millennium Edition、Windows 2000 或 Windows XP,那么已经安装了 WMI。否则,将需要从 MSDN 下载 WMI。用 System.Management 访问管理信息System.Management 命名空间是 .NET 框架中的 WMI 命名空间。此命名空间包括下列支持 WMI 操作的第一级类对象: ManagementObject 或 ManagementClass:分别为单个管理对象或类。 ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。 ManagementEventWatcher:用于预订来自 WMI 的事件通知。 ManagementQuery:用作所有查询类的基础。 System.Management 类的使用编码范例对 .NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。例如,WMI 广泛利用 .NET 集合类并使用推荐的编码模式,如 .NET 异步操作的“委托”模式。因此,使用 .NET 框架的开发人员可以使用他们的当前技能访问有关计算机或应用程序的管理信息。请参见使用 WMI 管理应用程序 | 检索管理对象的集合 | 查询管理信息 | 预订和使用管理事件 | 执行管理对象的方法 | 远程处理和连接选项 | 使用强类型对象获取CPU序列号代码string cpuInfo = "";//cpu序列号ManagementClass cimobject = new ManagementClass("Win32_Processor");ManagementObjectCollection moc = cimobject.GetInstances();foreach(ManagementObject mo in moc){cpuInfo = mo.Properties["ProcessorId"].Value.ToString();Console.WriteLine(cpuInfo);Console.ReadLine();}获取网卡硬件地址using System.Management;...ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach(ManagementObject mo in moc){if((bool)mo["IPEnabled"] == true)Console.WriteLine("MAC address\t{0}", mo["MacAddress"].ToString());mo.Dispose();}}获取硬盘IDString HDid;ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");ManagementObjectCollection moc = cimobject.GetInstances();foreach(ManagementObject mo in moc){HDid = (string)mo.Properties["Model"].Value;MessageBox.Show(HDid ); } 谢谢楼上的,我就是用您写的那段代码取的CPU ID和硬盘ID呀!而且我一共测试了6台DELL机器,每两台为配置相同一同购买的测试的3组数据,每组的两台都相同。CPU ID中有类型、系列、型号、步进信息,相同厂商出厂的配置一样的机器会是一样的。网卡信息我不太想用,因为网卡更换的可能性比CPU要大。 结论:1.通过WMI代码取的是CPU的ID而并非序列号。2.同厂商购买的同一批型号相同的CPU ID是有重复的,因为CPU ID不是唯一的。3.现在用C#语言取CPU序列号是有困难的。4.通过WMI用楼上cnming取硬盘ID取得ID是逻辑编号,这个编号是每次格式化硬盘得到的,因此每次格式化硬盘该编号是会有变化的。5.网卡的号是唯一的,但网卡存在更换的可能性比较大。6.建议和我一样做机器唯一性判定的朋友们可能用硬盘的物理ID,就是厂商印在硬盘上的SN。这个编号各个厂商是不同的,而且是唯一的。(取该编号的办法CSDN用很多,就不再详述了。) 很多CPU是没有serial number的.奔腾的好像只有Pentium III才有serial numberAMD 的干脆就没有serial number 之前已经说过了,采用WMI取得的硬盘ID是格式化之后得到的ID,是会变动的,如果要取得硬盘的固有ID,可以从网络上搜索dll来实现怎么会变成:回复人: RockyZhang(Rocky) ( ) 信誉:104 2004-09-27 16:48:00 得分: 0 结论:1.通过WMI代码取的是CPU的ID而并非序列号。2.同厂商购买的同一批型号相同的CPU ID是有重复的,因为CPU ID不是唯一的。3.现在用C#语言取CPU序列号是有困难的。4.通过WMI用楼上cnming取硬盘ID取得ID是逻辑编号,这个编号是每次格式化硬盘得到的,因此每次格式化硬盘该编号是会有变化的。5.网卡的号是唯一的,但网卡存在更换的可能性比较大。6.建议和我一样做机器唯一性判定的朋友们可能用硬盘的物理ID,就是厂商印在硬盘上的SN。这个编号各个厂商是不同的,而且是唯一的。(取该编号的办法CSDN用很多,就不再详述了。) 如果以后会记得你的ID,我绝对不会回答你的问题,没意思 怎样取得硬盘的固有ID,从那儿搜索dll来实现呢??String HDid; ManagementClass cimobject = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach(ManagementObject mo in moc) { HDid = (string)mo.Properties["Model"].Value; MessageBox.Show(HDid ); }是这个程序吗??从哪找那个dll 想把这个vb.net操作access数据库的 改写成c#的类,请指教 dataview 的RowFilter不支持子查询么 visio二次开发 题外:能低格使用usb口的移动硬盘么? 如何在.NET下实现窗体中页面变化功能 WinForm下如何把dataGridView中的数据导出到Excel中? 如何从一个aspx网站中post数据 关于B/S发短信到手机的问题? 关于C#只读字段的疑问 窗体调用 求电子地图源代码 如何把一个字符串的头尾去掉?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_1394controller.aspWMI在C#具体的写法可以自己搜索,很简单,就像数据库操作一样
WMI 提供了大量的规范以便为许多高端应用程序(例如,Microsoft Exchange、Microsoft SQL Server 和 Microsoft Internet 信息服务 (IIS))实现几乎任何管理任务。管理员可以执行下列任务: 监视应用程序的运行状况。
检测瓶颈或故障。
管理和配置应用程序。
查询应用程序数据(使用对象关系的遍历和查询)。
执行无缝的本地或远程管理操作。
WMI 结构由以下三层组成: 客户端
使用 WMI 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。 对象管理器
提供程序与客户端之间的中间装置,它提供一些关键服务,如标准事件发布和预订、事件筛选、查询引擎等。 提供程序
软件组件,它们捕获实时数据并将其返回到客户端应用程序,处理来自客户端的方法调用并将客户端链接到所管理的基础结构。 通过定义完善的架构向客户端和应用程序无缝地提供了数据和事件以及配置系统的能力。在 .NET 框架中,System.Management 命名空间提供了用于遍历 WMI 架构的公共类。除了 .NET 框架,还需要在计算机上安装 WMI 才能使用该命名空间中的管理功能。如果使用的是 Windows Millennium Edition、Windows 2000 或 Windows XP,那么已经安装了 WMI。否则,将需要从 MSDN 下载 WMI。用 System.Management 访问管理信息
System.Management 命名空间是 .NET 框架中的 WMI 命名空间。此命名空间包括下列支持 WMI 操作的第一级类对象: ManagementObject 或 ManagementClass:分别为单个管理对象或类。
ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
ManagementEventWatcher:用于预订来自 WMI 的事件通知。
ManagementQuery:用作所有查询类的基础。
System.Management 类的使用编码范例对 .NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。例如,WMI 广泛利用 .NET 集合类并使用推荐的编码模式,如 .NET 异步操作的“委托”模式。因此,使用 .NET 框架的开发人员可以使用他们的当前技能访问有关计算机或应用程序的管理信息。请参见
使用 WMI 管理应用程序 | 检索管理对象的集合 | 查询管理信息 | 预订和使用管理事件 | 执行管理对象的方法 | 远程处理和连接选项 | 使用强类型对象获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Console.WriteLine(cpuInfo);
Console.ReadLine();
}获取网卡硬件地址
using System.Management;
...
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("MAC address\t{0}", mo["MacAddress"].ToString());
mo.Dispose();
}
}获取硬盘ID
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;MessageBox.Show(HDid );
}
而且我一共测试了6台DELL机器,每两台为配置相同一同购买的测试的3组数据,每组的两台都相同。
CPU ID中有类型、系列、型号、步进信息,相同厂商出厂的配置一样的机器会是一样的。
网卡信息我不太想用,因为网卡更换的可能性比CPU要大。
1.通过WMI代码取的是CPU的ID而并非序列号。
2.同厂商购买的同一批型号相同的CPU ID是有重复的,因为CPU ID不是唯一的。
3.现在用C#语言取CPU序列号是有困难的。
4.通过WMI用楼上cnming取硬盘ID取得ID是逻辑编号,这个编号是每次格式化硬盘得到的,因此每次格式化硬盘该编号是会有变化的。
5.网卡的号是唯一的,但网卡存在更换的可能性比较大。
6.建议和我一样做机器唯一性判定的朋友们可能用硬盘的物理ID,就是厂商印在硬盘上的SN。这个编号各个厂商是不同的,而且是唯一的。(取该编号的办法CSDN用很多,就不再详述了。)
奔腾的好像只有Pentium III才有serial number
AMD 的干脆就没有serial number
怎么会变成:
回复人: RockyZhang(Rocky) ( ) 信誉:104 2004-09-27 16:48:00 得分: 0
结论:
1.通过WMI代码取的是CPU的ID而并非序列号。
2.同厂商购买的同一批型号相同的CPU ID是有重复的,因为CPU ID不是唯一的。
3.现在用C#语言取CPU序列号是有困难的。
4.通过WMI用楼上cnming取硬盘ID取得ID是逻辑编号,这个编号是每次格式化硬盘得到的,因此每次格式化硬盘该编号是会有变化的。
5.网卡的号是唯一的,但网卡存在更换的可能性比较大。
6.建议和我一样做机器唯一性判定的朋友们可能用硬盘的物理ID,就是厂商印在硬盘上的SN。这个编号各个厂商是不同的,而且是唯一的。(取该编号的办法CSDN用很多,就不再详述了。)
如果以后会记得你的ID,我绝对不会回答你的问题,没意思
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value; MessageBox.Show(HDid );
}
是这个程序吗??
从哪找那个dll