winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息

http://www.cnblogs.com/ccczqh/archive/2011/03/28/1997480.html
作者:ccczqh  来源:博客园  发布时间:2011-03-28 10:07  阅读:91 次  原文链接   [收藏]  
winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息
2009年07月30日 星期四 13:54

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

/// <summary>
        /// 取CPU编号
        /// </summary>
        /// <returns></returns>
        public static 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 "";
            }
        }

/// <summary>
        /// 取第一块硬盘编号
        /// </summary>
        /// <returns></returns>
        public static 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 "";
            }
        }

/// <summary>
        /// 获取网卡MAC地址
        /// </summary>
        /// <returns></returns>
        public static 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 "";
            }
        }

/// <summary>
        /// 获取硬盘信息的代码
        /// </summary>
        /// <param name="drvID"></param>
        /// <returns></returns>
        public static 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 "";
            }
        }

/// <summary>
        /// 获取当前网卡IP地址
        /// </summary>
        /// <returns></returns>
        public static 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 "";
            }
        }

#region 调用注册表返回本地串口
        /// <summary>
        /// 串口函数(方法需调用注册表,串口编程所用类)
        /// </summary>
        /// 使用命名空间:
        /// using System.Security;
        /// using System.Security.Permissions;
        /// <returns>返回此计算机串口数组</returns>
        public static string[] GetPortNames()//
        {
            RegistryKey localMachine = null;
            RegistryKey key2 = null;
            string[] textArray = null;//这里有个判断,判断该注册表项是否存在    
            new RegistryPermission(RegistryPermissionAccess.Read, @"HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM").Assert();
            try
            {
                localMachine = Registry.LocalMachine;
                key2 = localMachine.OpenSubKey(@"HARDWARE\DEVICEMAP\SERIALCOMM", false);
                if (key2 != null)
                {
                    string[] valueNames = key2.GetValueNames();
                    textArray = new string[valueNames.Length];
                    for (int i = 0; i < valueNames.Length; i++)
                    {
                        textArray[i] = (string)key2.GetValue(valueNames[i]);
                    }
                }
            }
            finally
            {
                if (localMachine != null)
                {
                    localMachine.Close();
                } if (key2 != null)
                {
                    key2.Close();
                }
                CodeAccessPermission.RevertAssert();
            } if (textArray == null)
            {
                textArray = new string[0];
            }
            return textArray;
        }
        #endregion

winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息相关推荐

  1. C# 学习随笔 获取计算机硬件参数,包括(CPU ID,MAC,磁盘ID和IP地址)

    引用using System.Management; public static string GetCpuID() //获取CPUID         {             string re ...

  2. c# 读cpu温度,显卡温度,硬盘温度,风扇转速,硬件信息,cpu占用,附赠项目源码

    http://download.csdn.net/download/fireghost57/9969844 OpenHardwareMonitor源码工程 读cpu温度,显卡温度,硬盘温度,风扇转速, ...

  3. 组播MAC地址和各类IP地址

    MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置.MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique ide ...

  4. linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法

    1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...

  5. 2023-5-7 什么是公网、内网、局域网、广域网、互联网?已经有了mac地址为什么还需要ip地址?使用ip地址是如何进行构建互联网的?

    2023-5-7 什么是公网.内网.局域网.广域网.互联网?已经有了mac地址为什么还需要ip地址?使用ip地址是如何进行构建互联网的?什么是内网穿透? 文章目录 2023-5-7 什么是公网.内网. ...

  6. 02. MAC地址 · ARP · ICMP · IP地址 · 子网 · 超网 · 端口

    MAC · IP · 子网 · 超网 MAC地址 MAC地址的表示格式 MAC地址操作(查看.修改)[实践] MAC地址的获取[实践] ARP ICMP IP地址 · 子网掩码 IP地址的组成 IP地 ...

  7. Delphi 中取本机的计算机名、IP地址、Windows登录的用户名

    //作者:陆岛工作室 XOtec Studio //组件库:XOtecExpress. 几个在Delphi 中取本机的计算机名.IP地址.Windows登录的用户名的函数. uses Windows, ...

  8. Mac查看本机ip地址

    Mac查看本机ip地址 ifconfig | grep "inet" 箭头处为ip地址

  9. 计算机网络·啥玩意是源MAC地址,目标MAC地址,源ip地址,目标ip地址

    你能清楚地知道 前言 一.别怕,类比着看 二.数据仅在交换机之间的转发 三.路由器之间的转发 四.主机之间转发 在同一个子网下(没经过路由器) 不在同一个子网下(经过路由器) 前些天发现了一个巨牛的人 ...

最新文章

  1. SpringBoot 深度调优,让你的项目飞起来!
  2. linux_一些shell命令分析记录
  3. 常考数据结构与算法:求二叉树的层序遍历
  4. 三分钟构建高性能 WebSocket 服务 | 超优雅的 SpringBoot 整合 Netty 方案
  5. css3 操作动画要点
  6. mysql中列的默认值
  7. 95-10-160-启动-KafkaApis
  8. Dumpsys Input Diagnostics
  9. keras可视化模型
  10. JavaScript是什么?看着一篇就够了
  11. 测试进阶必备,这5款http接口自动化测试工具真的很香
  12. 英语单词记忆原理及方法 - 超全思维导图梳理
  13. 以太网UDP协议讲解
  14. 计算机辅助设计师考试报考网址,计算机辅助设计师证如何报考?报名入口
  15. namecheap,namesilo域名注册优势,国外域名注册,2018 namesilo注册优惠码
  16. 解决http请求下无法开启麦克风问题
  17. S5PV210 裸机开发驱动之LED灯
  18. 有了这 15 款编程游戏,谁都可以学编程!
  19. 十八数藏柏松:数字藏品拥有广阔的发展空间,能为社会输出更好的价值
  20. 97年的欧冠决赛 多特蒙德VS尤文 中里德尔的梦

热门文章

  1. 畅玩mt3单机游戏服务器维护,【梦幻西游】MT3仿端手工游戏服务端源码[教程+授权物品后台]...
  2. VHD(Virtual Hard Disk)的解析(上篇)——PyVinil的使用
  3. a java runtime envi_认识java
  4. rabbitmq java集群_RabbitMQ集群整合SpringBoot2.x
  5. c语言搜索关键字吗,c语言-以关键字搜索程序
  6. java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...
  7. 华为手机楷体字体下载_手机查看3D打印模型图纸,国产软件SView来了
  8. 收藏丨运维良药,K8S日常故障处理集锦
  9. 五分钟学会使用 go modules(含在家办公使用技巧)
  10. 深入浅出 PouchContainer 容器化业务实践 Workshop 开放报名