C#获取硬件信息

using System;

using System.Net;

using System.Runtime.InteropServices;

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

 

namespace ConsoleApplication1

{

 

    /// <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 "";

            }

        }

    }

   

}今天以外的需要获得MAC,没想到找到了这个,还是蛮有意思的!

posted on 2009-10-23 22:22  delphi2007  阅读(537)  评论(0编辑  收藏  举报