如何获得计算机硬盘中没有什么的SerialNumber在C#中

c#如何获得cpu,硬盘的物理序列号-程序开发-红黑联盟
我的图书馆
c#如何获得cpu,硬盘的物理序列号-程序开发-红黑联盟
c#如何获得cpu,硬盘的物理序列号
文章录入:王子&&&&责任编辑:7747.Net&
【字体: 】
  using system.runtime.
  using& system.
  namespace hardware
  /// &summary&
  /// hardware_mac 的摘要说明。
  /// &/summary&
  public class hardwareinfo
  //取机器名
  public string gethostname()
  return system.net.dns.gethostname();
  //取cpu编号
  public string getcpuid()
  managementclass mc = new managementclass("win32_processor");
  managementobjectcollection moc = mc.getinstances();
  string strcpuid =
  foreach( managementobject mo in moc )
  strcpuid = mo.properties["processorid"].value.tostring();
  return "";
  }//end method
  //获取cpu序列号www.qichepeijian.com
  public string getcpuid2()
  System.Management.ManagementObjectSearcher&& Wmi&& =&& new&& ManagementObjectSearcher      &&&&&&&&&&&&&&&&&&&&&& ( "SELECT&& *&& FROM&& Win32_Processor ");
  string&& tmpUint32_1&& =&& string.E
  foreach(ManagementObject&& WmiObj&& in&& Wmi.Get())
  tmpUint32_1&& =WmiObj[ "ProcessorId "].ToString();
  this.textBox2.Text&& =&& tmpUint32_1;
  this.gProgressBar1.Value&& ++;
  catch(Exception&& ex2)
  throw&& new&& Exception(ex2.ToString());
  //取第一块硬盘编号
  public string getharddiskid()
  managementobjectsearcher searcher = new managementobjectsearcher("select * from win32_physicalmedia");
  string strharddiskid =
  foreach(managementobject mo in searcher.get())
  strharddiskid = mo["serialnumber"].tostring().trim();
  return "";
  }//end
  //获取磁盘序列号
  public string getharddiskid2()
  System.Management.ManagementObjectSearcher&& cmicWmi&& =&& new&&   &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ManagementObjectSearcher( "SELECT&& *&& FROM&& Win32_DiskDrive ");
  System.UInt32&& tmpUint32&& =&& 0;
  foreach(ManagementObject&& cmicWmiObj&& in&& cmicWmi.Get())
  tmpUint32&& =&& Convert.ToUInt32(cmicWmiObj[ "signature "].ToString());
  this.textBox1.Text&& =&& tmpUint32.ToString();
  this.gProgressBar1.Value&& ++;
  catch(Exception&& ex1)
  throw&& new&& Exception(ex1.ToString());
  ///&& &summary&
  ///&& 获取硬盘ID
  ///&& &/summary&
  ///&& &returns& string &/returns&
  public string GetHDid()
  string HDid = " ";
  using (ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"))
  ManagementObjectCollection moc1 = cimobject1.GetInstances();
  foreach (ManagementObject mo in moc1)
  HDid = (string)mo.Properties["Model"].V
  mo.Dispose();
  return HDid.ToString();
  ///&& &summary&
  ///&& 获取网卡硬件地址
  ///&& &/summary&
  ///&& &returns& string &/returns&
  public string GetMoAddress()
  string MoAddress = " ";
  using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
  ManagementObjectCollection moc2 = mc.GetInstances();
  foreach (ManagementObject mo in moc2)
  if ((bool)mo["IPEnabled"] == true)
  MoAddress = mo["MacAddress"].ToString();
  mo.Dispose();
  return MoAddress.ToString();
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢获取硬盘编号
来源:博客园
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia"); //Win32_DiskDrive不包含SerialNumber属性。 ManagementObjectCollection moc = mc.GetInstances(); string strID = foreach( ManagementObject mo in moc ) { strID = mo.Properties["SerialNumber"].Value.ToString(); } textBox1.Text +=
"硬盘 ID:" + strID;
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动C#获取硬盘、CPU、主板、网卡的序列号……&ManagementObjectSearcher
在很多情况下,你可能都需要得到微机的硬件信息。比如:你想给你的软件加锁,不让别人随便访问。
首先,你必须知道这个应用程序的功能是使用System.Management这个类得到的。因此,你需要加上下面的这句话:
为了获取硬件信息,你还需要创建一个ManagementObjectSearcher&对象:
ManagementObjectSearcher searcher = new
ManagementObjectSearcher("select *
from " + Key);
Win32_Processor, // CPU 处理器
Win32_PhysicalMemory, // 物理内存条
Win32_Keyboard, // 键盘
Win32_PointingDevice, // 点输入设备,包括鼠标。
Win32_FloppyDrive, // 软盘驱动器
Win32_DiskDrive, // 硬盘驱动器
Win32_CDROMDrive, // 光盘驱动器
Win32_BaseBoard, // 主板
Win32_BIOS, // BIOS 芯片
Win32_ParallelPort, // 并口
Win32_SerialPort, // 串口
Win32_SerialPortConfiguration, // 串口配置
Win32_SoundDevice, // 多媒体设置,一般指声卡。
Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
Win32_USBController, // USB 控制器
Win32_NetworkAdapter, // 网络适配器
Win32_NetworkAdapterConfiguration, // 网络适配器设置
Win32_Printer, // 打印机
Win32_PrinterConfiguration, // 打印机设置
Win32_PrintJob, // 打印机任务
Win32_TCPIPPrinterPort, // 打印机端口
Win32_POTSModem, // MODEM
Win32_POTSModemToSerialPort, // MODEM 端口
Win32_DesktopMonitor, // 显示器
Win32_DisplayConfiguration, // 显卡
Win32_DisplayControllerConfiguration, // 显卡设置
Win32_VideoController, // 显卡细节。
Win32_VideoSettings, // 显卡支持的显示模式。
// 操作系统
Win32_TimeZone, // 时区
Win32_SystemDriver, // 驱动程序
Win32_DiskPartition, // 磁盘分区
Win32_LogicalDisk, // 逻辑磁盘
Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
Win32_LogicalMemoryConfiguration, // 逻辑内存配置
Win32_PageFile, // 系统页文件信息
Win32_PageFileSetting, // 页文件设置
Win32_BootConfiguration, // 系统启动配置
Win32_ComputerSystem, // 计算机信息简要
Win32_OperatingSystem, // 操作系统信息
Win32_StartupCommand, // 系统自动启动程序
Win32_Service, // 系统安装的服务
Win32_Group, // 系统管理组
Win32_GroupUser, // 系统组帐号
Win32_UserAccount, // 用户帐号
Win32_Process, // 系统进程
Win32_Thread, // 系统线程
Win32_Share, // 共享
Win32_NetworkClient, // 已安装的网络客户端
Win32_NetworkProtocol, // 已安装的网络协议
上面代码的Key是一个将被对应正确的数据填入的值。例如,获取CPU的信息,就需要把Key值设成Win32_Processor.
首先,调用ManagementObjectSearcher实例(在本文中的例子里为searcher )中的Get()方法,该方法将会把返回信息填在这个实例中。然后,你所要做的就是处理这个实例searcher中的数据。
foreach (ManagementObject share in searcher.Get()){// Some Codes ...}
每个ManagementObject的对象中都有一些,我们所需要的数据,当然我们可以接着这么处理这些数据:
foreach (PropertyData PC in share.Properties){//some codes ...}
代码示例:
&&&&&&& /// 获得CPU编号
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetCPUID()
&&&&&&&&&&& string cpuid = "";
&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_Processor");
&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();
&&&&&&&&&&& foreach (ManagementObject mo in moc)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& cpuid = mo.Properties["ProcessorId"].Value.ToString();
&&&&&&&&&&& }
&&&&&&&&&&&
&&&&&&& ///
&&&&&&& /// 获取硬盘序列号
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetDiskSerialNumber()
&&&&&&&&&&& //这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
&&&&&&&&&&& String HDid = "";
&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_DiskDrive");
&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();
&&&&&&&&&&& foreach (ManagementObject mo in moc)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& HDid = (string)mo.Properties["SerialNumber"].V//SerialNumber在Win7以上系统有效
&&&&&&&&&&&&&&&//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘,也可查wmi_HD["MediaType"].ToString() == "Fixed hard disk media")//固定硬盘,在Win7以上系统上,XP上"Fixed hard disk ”
&&&&&&&&&&& }
&&&&&&&&&&& return HD
&&&&&&&&&&&
&&&&&&& ///
&&&&&&& /// 获取网卡硬件地址
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetMacAddress()
&&&&&&&&&&& 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();
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&&&&&&
&&&&&&& ///
&&&&&&& /// 获取IP地址
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetIPAddress()
&&&&&&&&&&& 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.A
&&&&&&&&&&&&&&&&&&& ar = (System.Array)(mo.Properties["IpAddress"].Value);
&&&&&&&&&&&&&&&&&&& st = ar.GetValue(0).ToString();
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&&&&&&
&&&&&&& ///
&&&&&&& /// 操作系统的登录用户名
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetUserName()
&&&&&&&&&&& return Environment.UserN
&&&&&&& ///
&&&&&&& /// 获取计算机名
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetComputerName()
&&&&&&&&&&& return Environment.MachineN
&&&&&&& ///
&&&&&&& /// 操作系统类型
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetSystemType()
&&&&&&&&&&& string st = "";
&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();
&&&&&&&&&&& foreach (ManagementObject mo in moc)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& st = mo["SystemType"].ToString();
&&&&&&&&&&& }
&&&&&&&&&&&
&&&&&&& ///
&&&&&&& /// 物理内存
&&&&&&& ///
&&&&&&& ///
&&&&&&& public string GetPhysicalMemory()
&&&&&&&&&&& string st = "";
&&&&&&&&&&& ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
&&&&&&&&&&& ManagementObjectCollection moc = mc.GetInstances();
&&&&&&&&&&& foreach (ManagementObject mo in moc)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& st = mo["TotalPhysicalMemory"].ToString();
&&&&&&&&&&& }
&&&&&&&&&&&
类似地,有:&&&
显卡: Win32_VideoController , PNPDeviceID&&&&&&&
声卡: Win32_SoundDevice ,PNPDeviceID
CPU: Win32_Processor- 版本信息 Version,
名称信息Name,
制造厂商Manufacturer
主板: Win32_BaseBoar-型号 Produc, 编号&SerialNumber, 制造厂商 Manufacturer
WQL查询语句:
&// 网卡原生MAC地址
&"SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE 'ROOT%'))",
&L"PNPDeviceID",
&// 硬盘序列号
&"SELECT * FROM Win32_DiskDrive WHERE (SerialNumber IS NOT NULL) AND (MediaType LIKE 'Fixed hard disk%')",
&L"SerialNumber",
&// 主板序列号
&"SELECT * FROM Win32_BaseBoard WHERE (SerialNumber IS NOT NULL)",
&L"SerialNumber",&
&// 处理器ID
&"SELECT * FROM Win32_Processor WHERE (ProcessorId IS NOT NULL)",
&L"ProcessorId",
&// BIOS序列号
&"SELECT * FROM Win32_BIOS WHERE (SerialNumber IS NOT NULL)",
&L"SerialNumber",
&// 主板型号
&"SELECT * FROM Win32_BaseBoard WHERE (Product IS NOT NULL)",
&L"Product",
&// 网卡当前MAC地址
&"SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE 'ROOT%'))",
&L"MACAddress",
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。C# 获取硬盘序列号_百度知道
C# 获取硬盘序列号
C# 获取硬盘的序列号,而不是获取某个盘符的序列号 ,获取出厂的硬盘序列号。查了很多资料,都是获取盘符的。
我有更好的答案
有两种方法可以获取:1.采用WMI可以获取(获取部分硬盘),代码如下:public static List&string& GetHDIds()
List&string& hdIds = new List&string&();
//ManagementClass cimobject = new ManagementClass(&Win32_DiskDrive&);
ManagementClass cimobject = new ManagementClass(&Win32_PhysicalMedia&);
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
//String HDid = (string)mo.Properties[&Model&].Value.ToString();//获取的是硬盘名称
String HDid = (string)mo.Properties[&SerialNumber&].Value.ToString();
if (!string.IsNullOrEmpty(HDid))
hdIds.Add(HDid);
return hdI
catch (Exception r)
hdIds.Add(&无法获得硬盘信息!&);
MessageBox.Show(&硬盘错误信息:& + r.Message);
return hdI
}2:采用一个免费的DLL,DiskID32.dll(网上下载)可以获取大部分硬盘的序列号,和上一种方法结合应该可以获取绝大多数的硬盘序列号,dll可以直接放在Debug目录下, //[DllImport(&DiskID32.dll&)]
//public static extern long DiskID32(ref byte DiskModel, ref byte DiskID);
//public static string GetDiskID()
byte[] DiskModel = new byte[31];
byte[] DiskID = new byte[31];
string ID = &&;
if (DiskID32(ref DiskModel[0], ref DiskID[0]) != 1)
for (i = 0; i & 31; i++)
if (Convert.ToChar(DiskID[i]) != Convert.ToChar(0))
ID = ID + Convert.ToChar(DiskID[i]);
ID = ID.Trim();
Console.WriteLine(&获取硬盘序列号出错&);
return ID;
采纳率:33%
string name=GetDiskVolumeSerialNumber();
为您推荐:
其他类似问题
您可能关注的内容
硬盘序列号的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C#程序获得cpu,硬盘的序列号_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C#程序获得cpu,硬盘的序列号
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 计算机硬盘中没有什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信