转: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 "";   

  

            }   

  

        }   

  

    }   

  

       

  

}  



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



            }



        }



    }



    



}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值