C#擷取電腦硬體資訊(CPU,網卡,硬碟,記憶體等)

來源:互聯網
上載者:User

標籤:

using System;using System.Collections.Generic;using System.Linq;using System.Management;using System.Text;namespace Formular{    /// <summary>    /// Author ZZH    ///     /// 擷取電腦硬體資訊    ///     /// 可根據以下資訊比對    ///     /// CPU(CPU序號)    /// 網卡(Mac地址)    /// 硬碟(硬碟ID)    /// 系統(系統名稱,系統型號)    /// 記憶體(記憶體大小)    /// </summary>    public class Computer    {        /// <summary>        /// CPU序號        /// </summary>        public string CpuID;        /// <summary>        /// 網卡/Mac地址        /// </summary>        public string MacAddress;        /// <summary>        /// 硬碟ID        /// </summary>        public string DiskID;        /// <summary>        /// IP地址        /// </summary>        public string IpAddress;        /// <summary>        /// 系統登入使用者名稱        /// </summary>        public string LoginUserName;        /// <summary>        /// 系統名稱        /// </summary>        public string ComputerName;        /// <summary>        /// 系統型號        /// </summary>        public string SystemType;        /// <summary>        /// 實體記憶體(單位b)        /// </summary>        public string TotalPhysicalMemory;         private static Computer _instance;        public static Computer Instance()        {            if (_instance == null)                _instance = new Computer();            return _instance;        }        protected Computer()        {            CpuID = GetCpuID();            MacAddress = GetMacAddress();            DiskID = GetDiskID();            IpAddress = GetIPAddress();            LoginUserName = GetUserName();            SystemType = GetSystemType();            TotalPhysicalMemory = GetTotalPhysicalMemory();            ComputerName = GetComputerName();        }        string GetCpuID()        {            try            {                //擷取CPU序號代碼                string cpuInfo = "";//cpu序號                ManagementClass mc = new ManagementClass("Win32_Processor");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();                }                moc = null;                mc = null;                return cpuInfo;            }            catch            {                return "unknow";            }         }        string GetMacAddress()        {            try            {                //擷取網卡硬體地址                string mac = "";                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    if ((bool)mo["IPEnabled"] == true)                    {                        mac = mo["MacAddress"].ToString();                        break;                    }                }                moc = null;                mc = null;                return mac;            }            catch            {                return "unknow";            }         }        string GetIPAddress()        {            try            {                //擷取IP地址                string st = "";                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    if ((bool)mo["IPEnabled"] == true)                    {                        //st=mo["IpAddress"].ToString();                        System.Array ar;                        ar = (System.Array)(mo.Properties["IpAddress"].Value);                        st = ar.GetValue(0).ToString();                        break;                    }                }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }         }        string GetDiskID()        {            try            {                //擷取硬碟ID                String HDid = "";                ManagementClass mc = new ManagementClass("Win32_DiskDrive");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    HDid = (string)mo.Properties["Model"].Value;                }                moc = null;                mc = null;                return HDid;            }            catch            {                return "unknow";            }         }        /// <summary>        /// 作業系統的登入使用者名稱        /// </summary>        /// <returns></returns>        string GetUserName()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                     st = mo["UserName"].ToString();                 }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }         }        /// <summary>        /// PC類型        /// </summary>        /// <returns></returns>        string GetSystemType()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                     st = mo["SystemType"].ToString();                 }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }         }        /// <summary>        /// 實體記憶體        /// </summary>        /// <returns></returns>        string GetTotalPhysicalMemory()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                     st = mo["TotalPhysicalMemory"].ToString();                 }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }         }        /// <summary>        /// 系統名稱        /// </summary>        /// <returns></returns>        string GetComputerName()        {            try            {                return System.Environment.GetEnvironmentVariable("ComputerName");            }            catch            {                return "unknow";            }         }    }}

需要引入System.Management.dll


該類用來記錄電腦硬體資訊,防止有人惡意破壞


C#擷取電腦硬體資訊(CPU,網卡,硬碟,記憶體等)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.