博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#获取cpu序列号,硬盘ID,网卡MAC地址等硬件信息
阅读量:7297 次
发布时间:2019-06-30

本文共 2694 字,大约阅读时间需要 8 分钟。

首先在添加引用中选中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,如需转载请自行联系原作者

你可能感兴趣的文章
ios页面保存至桌面logo大小
查看>>
ios开发之--给WebView加载进度条
查看>>
截断表
查看>>
jq返回顶部多种实现方法
查看>>
Hadoop_HDFS文件读写代码流程解析和副本存放机制
查看>>
Linux cat
查看>>
HDU 6052 To my boyfriend(容斥+单调栈)
查看>>
jQuery鼠标拖曳改变div大小(模拟textarea右下角拖曳)
查看>>
数据仓库建模对比: 比较表格和多维解决方案 (Comparing tabular and multidimensional solutions)...
查看>>
2.mongoDB 介绍(特点、优点、原理)
查看>>
JSON的三种解析方式
查看>>
1.JSONObject与JSONArray的使用
查看>>
web前端面试题:
查看>>
让linux下的eclipse支持GBK编码
查看>>
Codeforces Round #295 D. Cubes [贪心 set map]
查看>>
leetcode 326. Power of Three
查看>>
Django timezone问题
查看>>
Android在java代码中设置margin
查看>>
MFC对话框响应ON_UPDATE_COMMAND_UI事件
查看>>
jmeter学习笔记~~~~第一天
查看>>