WPF 获得本机电脑部分信息

这里提供一个通用方法查询自己电脑部分信息。

同时最后一个方法提供了在注册表查询自己电脑信息的写法。


/// <summary>
/// 查找本机信息
/// </summary>
/// <param name="selectSentence">查询语句</param>
/// <param name="targetAttribute">目标属性</param>
private static string SelectSystemInfo(string selectSentence, string targetAttribute)
{
    try
    {
        using var searcher = new ManagementObjectSearcher(selectSentence);
        foreach (ManagementObject obj in searcher.Get().Cast<ManagementObject>())
        {
            return obj[targetAttribute].ToString();
        }
        return string.Empty;
    }
    catch (Exception ex)
    {
        Log.Error($"查找出现错误,参数:{selectSentence},{targetAttribute} 错误:{ex}");
        return string.Empty;
    }
}

// 获得Cpu型号
public static string GetCpuModel()
{
    return SelectSystemInfo("select Name from Win32_Processor", "Name");
}

// 获得Bios版本
public static string GetBIOSVersion()
{
    return SelectSystemInfo("SELECT * FROM Win32_BIOS", "SMBIOSBIOSVersion");
}

// 获得Window版本
public static string GetWindowVersion()
{
    string windowVision = "";
    using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
    if (key != null)
    {
        windowVision += key.GetValue("ProductName")?.ToString() + " ";
        windowVision += key.GetValue("DisplayVersion")?.ToString() + " ";
        windowVision += key.GetValue("CurrentBuild")?.ToString() + " ";
    }
    return windowVision;
}
posted @ 2026-08-10 10:53  Poetindusk  阅读(2)  评论(0)    收藏  举报