`
guojingxf
  • 浏览: 65948 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C#获取本地硬件信息

阅读更多

类HardInfoClass代码如下

using System;
using System.Net;
using System.Runtime.InteropServices;
using System.Management; //需要在解决方案中引用System.Management.DLL文件

namespace FileTransLate.PCStatus
{
 /// <summary>
 /// HardInfoClass 的摘要说明。
 /// </summary>
 public class HardInfoClass
 {
 

  [DllImport("kernel32.dll")]
  private static extern int GetVolumeInformation(
   string lpRootPathName,
   string lpVolumeNameBuffer,
   int nVolumeNameSize,
   ref int lpVolumeSerialNumber,
   int lpMaximumComponentLength,
   int lpFileSystemFlags,
   string lpFileSystemNameBuffer,
   int nFileSystemNameSize
   );

  public HardInfoClass()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  //取机器名
  public string GetHostName()
  {
   return System.Net.Dns.GetHostName();
  }

  //取CPU编号
  public string GetCpuID()
  {
   try
   {
    ManagementClass mc = new ManagementClass("Win32_Processor");
    ManagementObjectCollection moc = mc.GetInstances();

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

  }//end method

  //取第一块硬盘编号
  public string GetHardDiskID()
  {
   try
   {
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
    string strHardDiskID = null ;
    foreach(ManagementObject mo in searcher.Get())
    {
     strHardDiskID = mo["SerialNumber"].ToString().Trim();
     break;
    }
    return strHardDiskID ;
   }
   catch
   {
    return "";
   }
  }
  //获取网卡MAC地址

  public string GetNetCardMAC()
  {
   try
   {
    string stringMAC = "";   
    ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection MOC= MC.GetInstances();
   
    foreach(ManagementObject MO in MOC)
    {
     if ((bool)MO["IPEnabled"] == true)
     {
      stringMAC += MO["MACAddress"].ToString();
           
     }
    } 
    return stringMAC;
   }
   catch
   {
    return "";
   }
  }

  //获取硬盘信息的代码
  public string GetVolOf(string drvID)
  {
   try
   {
   const int MAX_FILENAME_LEN = 256;
   int retVal = 0;
   int a =0;
   int b =0;
   string str1 = null;
   string str2 = null;


   int i = GetVolumeInformation(
    drvID + @":\",
    str1,
    MAX_FILENAME_LEN,
    ref retVal,
    a,
    b,
    str2,
    MAX_FILENAME_LEN
    );

   return retVal.ToString("x");
   }
   catch
   {
    return "";
   }
  }


  //获取当前网卡IP地址
  public string GetNetCardIP()
  {
   try
   {  
    string stringIP = "";
    ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection MOC= MC.GetInstances();
   
    foreach(ManagementObject MO in MOC)
    {
     if ((bool)MO["IPEnabled"] == true)
     {     
      string[] IPAddresses = (string[]) MO["IPAddress"];
      if(IPAddresses.Length > 0)
      stringIP = IPAddresses[0].ToString();
     
     }
    }
    return stringIP;
   }
   catch
   {
    return "";
   }
  }
 
 }
}

 

引用自:http://blog.csdn.net/xiaotuni/archive/2008/01/05/2027178.aspx

分享到:
评论

相关推荐

    C#获取本地计算机的硬件信息源代码

    C#获取本地计算机的硬件信息源代码 C#获取本地计算机的硬件信息 C#获取计算机的硬件信息 WinForm获取硬件信息源代码 WinForm获取硬件信息

    C#实现获取本地电脑硬件信息工程项目

    这是一个关于使用.NET4.0框架开发的获取Windows系统硬件信息的项目工程,已经完整实现了电脑硬件信息的获取,方便大家一起使用。

    原创 C#获取计算机各种硬件设备的序列号

    原创 C#获取计算机各种硬件设备的序列号 (包括CPUID 硬盘IF,网卡ID)

    C#使用简单三层实现获取本地计算机硬件信息以及使用ADO.net操作数据库、用户权限控制、条件筛选、Excel导出、单例模式等功能

    这是一个使用C#简单三层的架构、实现获取本地计算机硬件信息的demo、用到的基础知识点有: 1、三层架构的开发思想、以及层次之间的引用关系 2、ADO.NET对数据库的操作 3、单例模式 4、C#中的API获取计算机硬件信息 5...

    c#调用本地摄像头

    调用本地摄像头来获取动作状态,利用c#编程语言,wpf框架

    取得本地机器硬件信息的C#小程序

    平时做的一个C#。NET的取得硬件信息的小程序,是NET2005的。

    HTTPS证书创建+绑定端口+C#程序监听

    1、用C#的exe程序,搭建HTTPS监听,可用于静态网站、接口、模拟Web...3、如:web界面上调用http://localhost:xx/+参数,调用本地硬件、本地缓存(内存或文件,可 代替cookies)、打开本地程序、调用打印机、扫码墩....

    c# 通过web socket服务,调用读卡器,条码打印机

    内置前端html页面,通过js调用web socket方法示例,获取读卡器,条码打印机,以及usb端扫码枪服务

    C#开发经验技巧宝典

    0770 如何获取本地计算机上所有的进程 469 0771 如何启动一个进程 470 0772 怎样杀死一个进程 470 0773 如何获取远程计算机上所有的进程 470 17.7 其他相关技术 470 0774 如何在注册表中保存窗体的大小和...

    WEB页面获取电子秤串口信息.zip

    目的:让服务器上的WEB页面获取收银机电脑上电子秤串口的数据 使用技术:node 的 websocket 与 serialport、html nodejs 是部署在收银机电脑上的,如果是多台电脑使用同一个端口就行了,文档中说明有误

    C#开发典型模块大全

    13.3.5 获取本地磁盘中文件的图标 327 13.3.6 获取FTP服务器中的所有文件 329 13.3.7 批量上传文件 333 13.3.8 批量下载文件 337 13.3.9 删除FTP中的文件或文件夹 340 第14章 魔法兔子模块 14.1 概述 ...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

    C#开发典型模块大全(光盘)第二部分

    13.3.5 获取本地磁盘中文件的图标 13.3.6 获取FTP服务器中的所有文件 13.3.7 批量上传文件 13.3.8 批量下载文件 13.3.9 删除FTP中的文件或文件夹 第14章 魔法兔子模块 14.1 概述 14.2 关键技术 14.2.1 获取进程...

    C#开发典型模块大全(光盘)

    13.3.5 获取本地磁盘中文件的图标 13.3.6 获取FTP服务器中的所有文件 13.3.7 批量上传文件 13.3.8 批量下载文件 13.3.9 删除FTP中的文件或文件夹 第14章 魔法兔子模块 14.1 概述 14.2 关键技术 14.2.1 获取进程...

    C#微软培训资料

    C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出...

    C#开发典型模块大全(光盘)第一部分

    13.3.5 获取本地磁盘中文件的图标 13.3.6 获取FTP服务器中的所有文件 13.3.7 批量上传文件 13.3.8 批量下载文件 13.3.9 删除FTP中的文件或文件夹 第14章 魔法兔子模块 14.1 概述 14.2 关键技术 14.2.1 获取进程...

    c#学习笔记.txt

    foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下: foreach (type identifier in expression) statement 若要循环访问集合,集合必须满足特定的...

Global site tag (gtag.js) - Google Analytics