C#获取cpu序列号,硬盘ID,网卡MAC地址等硬件信息

简介:

首先在添加引用中选中System.Management
 
using System.Management;
using System.Management.Instrumentation;

private void GetInfo()  
   {  
    string cpuInfo = "";//cpu序列号  
    ManagementClass cimobject = new ManagementClass("Win32_Processor");  
    ManagementObjectCollection moc = cimobject.GetInstances();  
    foreach(ManagementObject mo in moc)  
    {  
     cpuInfo = mo.Properties["ProcessorId"].Value.ToString();  
     Response.Write ("cpu序列号:"+cpuInfo.ToString ());  
    } 

    //获取硬盘ID  
    String HDid;  
    ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");  
    ManagementObjectCollection moc1 = cimobject1.GetInstances();  
    foreach(ManagementObject mo in moc1)  
    {  
     HDid = (string)mo.Properties["Model"].Value;  
     Response.Write ("硬盘序列号:"+HDid.ToString ());  
    } 


    //获取网卡硬件地址 

     
     
    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
    ManagementObjectCollection moc2 = mc.GetInstances();  
    foreach(ManagementObject mo in moc2)  
    {  
     if((bool)mo["IPEnabled"] == true)  
      Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());  
     mo.Dispose();  
    }  
   }

 

    public static float GetCPUPersent()
    {
        float cpuload = 0;
        const string categoryname = "processor";
        const string countername = "% processor time";
        const string instancename = "_total";
        PerformanceCounter pc = new PerformanceCounter(categoryname, countername, instancename);
        int i = 10;
        while (i > 0)
        {
            Thread.Sleep(1000); // wait for 1 second 
            cpuload = pc.NextValue();
            if (cpuload > 0)
            {
                break;
            }
            i--;
        }
        return cpuload;
    }

    public static void GetDiskSpace(string path, out long DiskAll, out long DiskActive)
    {
        DiskAll = 0;
        DiskActive = 0;
        long a, b, c;
        int aaa = GetDiskFreeSpaceEx(path, out a, out b, out c);
        DiskAll = (long)(b / 1024 / 1024);
        DiskActive = (long)(a / 1024 / 1024);
    }

    public static void GetMemoryInfo(out uint MemoryAll, out uint MemoryUsed)
    {
        MemoryAll = 0;
        MemoryUsed = 0;
        MEMORY_INFO MemInfo = new MEMORY_INFO();
        GlobalMemoryStatus(ref  MemInfo);
        MemoryAll = MemInfo.dwTotalPhys / 1024 / 1024;
        MemoryUsed = (MemInfo.dwTotalPhys - MemInfo.dwAvailPhys) / 1024 / 1024;
    }

 

 

 

    [DllImport("kernel32")]
    public static extern void GlobalMemoryStatus(ref  MEMORY_INFO meminfo);

    //定义内存的信息结构  
    [StructLayout(LayoutKind.Sequential)]
    public struct MEMORY_INFO
    {
        public uint dwLength;
        public uint dwMemoryLoad;
        public uint dwTotalPhys;
        public uint dwAvailPhys;
        public uint dwTotalPageFile;
        public uint dwAvailPageFile;
        public uint dwTotalVirtual;
        public uint dwAvailVirtual;
    }

    [DllImport("kernel32.dll", EntryPoint = "GetDiskFreeSpaceExA")]
    public static extern int GetDiskFreeSpaceEx(string lpRootPathName, out long lpFreeBytesAvailable, out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);

 




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/06/12/2078858.html,如需转载请自行联系原作者


相关文章
|
6月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
5月前
|
设计模式 uml
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
该博客文章通过一个电脑主机启动的示例代码,展示了外观模式(Facade Pattern)的设计模式,其中主机(MainFrame)类通过调用内部硬件组件(如内存、CPU、硬盘)和操作系统的启动方法来实现开机流程,同时讨论了外观模式的优缺点。
|
5月前
|
KVM 虚拟化
[kvm]cpu内存硬盘配置
[kvm]cpu内存硬盘配置
|
6月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
8月前
|
安全 Java iOS开发
MAC OS X 硬盘安装详细分解教程
MAC OS X 硬盘安装详细分解教程
257 1
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
203 0
|
8月前
|
监控 Shell
Shell脚本监控CPU、内存和硬盘利用率
Shell脚本监控CPU、内存和硬盘利用率
|
8月前
|
运维 Linux
Linux 查询 OS、CPU、内存、硬盘信息
Linux 查询 OS、CPU、内存、硬盘信息
147 0
|
监控 Shell Perl
监控CPU、内存和硬盘利用率
监控CPU、内存和硬盘利用率
156 1
|
JSON 数据可视化 定位技术
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
320 0