LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 获取PC配置信息方法

admin
2025年8月4日 12:52 本文热度 114

在日常工作中,我们通过获取PC配置信息来检查硬件的兼容性、性能优化、故障诊断安全运维、优化用户体验等,通过合理利用硬件信息,开发者可以显著提升软件稳定性、安全性和用户体验。

以下是一些常用获取PC配置信息的方法:

  • 获取操作系统名称

  • 获取操作系统类型

  • 判断系统是32位或是64位

  • 获取计算机名称

  • 获取硬盘序号

  • 获取CPC ID

  • 获取物理内存信息

  • 获取IPv4地址

  • 测试IP是否畅通


1、获取操作系统名称

/// <summary>  /// 获取操作系统名称  /// </summary>  /// <returns>操作系统名称</returns>  public string GetSystemName(){    try    {        string strSystemName = string.Empty;        ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2""SELECT PartComponent FROM Win32_SystemOperatingSystem");        foreach (ManagementObject mo in mos.Get())        {            strSystemName = mo["PartComponent"].ToString();        }        mos = new ManagementObjectSearcher("root\\CIMV2""SELECT Caption FROM Win32_OperatingSystem");        foreach (ManagementObject mo in mos.Get())        {            strSystemName = mo["Caption"].ToString();        }        return strSystemName;    }    catch    {        return "unknown";    }}

2、获取操作系统类型

/// <summary>  /// 获取操作系统类型  /// </summary>  /// <returns>操作系统类型</returns>  public string GetSystemType(){    try    {        string strSystemType = string.Empty;        ManagementClass mc = new ManagementClass("Win32_ComputerSystem");        ManagementObjectCollection moc = mc.GetInstances();        foreach (ManagementObject mo in moc)        {            strSystemType = mo["SystemType"].ToString();        }        moc = null;        mc = null;        return strSystemType;    }    catch    {        return "unknown";    }}

3、判断系统是32位或是64位

/// <summary>/// 判断系统是32位或是64位/// </summary>/// <returns></returns>public string CheckPCSystem(){    string RetStr = "";    if (IntPtr.Size == 4)    {        RetStr = "32";    }    else if (IntPtr.Size == 8)    {        RetStr = "64";    }    return RetStr;}

4、获取计算机名称

/// </summary>  /// <summary>  /// 获取计算机名称/// </summary>  /// <returns>当前PC计算机名称</returns>  public string GetComputerName(){    try    {        string strPCName = string.Empty;        ManagementClass mc = new ManagementClass("Win32_ComputerSystem");        ManagementObjectCollection moc = mc.GetInstances();        foreach (ManagementObject mo in moc)        {            strPCName = mo["Name"].ToString();            //strPCName = mo["UserName"].ToString();        }        moc = null;        mc = null;        return strPCName;    }    catch    {        return "unknown";    }}

5、获取硬盘序号

/// <summary>  /// 获取硬盘序号  /// </summary>  /// <returns>硬盘序号</returns>  public string GetDiskID(){    try    {        string strDiskID = string.Empty;        ManagementClass mc = new ManagementClass("Win32_DiskDrive");        ManagementObjectCollection moc = mc.GetInstances();        foreach (ManagementObject mo in moc)        {            strDiskID = mo.Properties["Model"].Value.ToString();        }        moc = null;        mc = null;        return strDiskID;    }    catch    {        return "unknown";    }}

6、获取CpuID

/// <summary>  /// 获取CpuID  /// </summary>  /// <returns>CpuID</returns>  public string GetCpuID(){    try    {        string strCpuID = string.Empty;        ManagementClass mc = new ManagementClass("Win32_Processor");        ManagementObjectCollection moc = mc.GetInstances();        foreach (ManagementObject mo in moc)        {            strCpuID = mo.Properties["ProcessorId"].Value.ToString();        }        moc = null;        mc = null;        return strCpuID;    }    catch    {        return "unknown";    }}

7、获取物理内存信息

/// <summary>  /// 获取物理内存信息  /// </summary>  /// <returns>物理内存信息</returns>  public string GetTotalPhysicalMemory(){    try    {        string strTotalPhysicalMemory = string.Empty;        ManagementClass mc = new ManagementClass("Win32_ComputerSystem");        ManagementObjectCollection moc = mc.GetInstances();        foreach (ManagementObject mo in moc)        {            strTotalPhysicalMemory = mo["TotalPhysicalMemory"].ToString();        }        moc = null;        mc = null;        return strTotalPhysicalMemory;    }    catch    {        return "unknown";    }}

8、获取IPv4地址

/// <summary>/// 获取客户端内网IPv4地址/// </summary>/// <returns></returns>public string GetClientLocalIPv4Address(){    try    {        string HostName = Dns.GetHostName(); //得到主机名        IPHostEntry IpEntry = Dns.GetHostEntry(HostName);        for (int i = 0; i < IpEntry.AddressList.Length; i++)        {            //从IP地址列表中筛选出IPv4类型的IP地址            //AddressFamily.InterNetwork表示此IP为IPv4,            //AddressFamily.InterNetworkV6表示此地址为IPv6类型            if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork)            {                string ipv4 = IpEntry.AddressList[i].ToString();                Regex r = new Regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}");                Match mth = r.Match(ipv4);                if (mth.Success && ipv4 != "127.0.0.1")                {                    return IpEntry.AddressList[i].ToString();                }            }        }        return "";    }    catch (Exception)    {        return "";    }}

9、测试IP是否畅通

/// <summary>/// 测试IP是否畅通/// </summary>/// <param name="ServerIp"></param>/// <returns></returns>public bool PingSeverIPState(string ServerIp){    try    {        System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();        System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();        options.DontFragment = true;        string data = "Test Data!";        byte[] buffer = Encoding.ASCII.GetBytes(data);        int timeout = 2000// Timeout 时间,单位:毫秒          System.Net.NetworkInformation.PingReply reply = p.Send(ServerIp, timeout, buffer, options);        if (reply == null || reply.Status == System.Net.NetworkInformation.IPStatus.Success)            return true;
        return false;    }    catch (System.Net.NetworkInformation.PingException)    {        //  throw new Exception("找不到服务器");        return false;    }}


阅读原文:原文链接


该文章在 2025/8/4 18:01:08 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved