zoukankan      html  css  js  c++  java
  • winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息

    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

    PS:网络转载

  • 相关阅读:
    LA 6891 Money Transfers(最短路)
    Gym
    UVa 1662 Brackets Removal
    Gym 101334F Feel Good
    Gym 101334E Exploring Pyramids(dp+乘法原理)
    POJ 2112 Optimal Milking(二分+最大流)
    POJ 2115 C Looooops(模线性方程)
    UVa 11552 最小的块数(序列划分模型:状态设计)
    UVa 10534 波浪子序列(快速求LIS)
    UVa 10891 Sum游戏
  • 原文地址:https://www.cnblogs.com/wfwup/p/1616110.html
Copyright © 2011-2022 走看看