如何使用C#获取运行代码的OS的名称?

时间:2011-02-16 13:17:20

标签: c# windows-xp operating-system windows-7-x64

我有一个C#应用程序,预计将在WIn 7& S中运行。赢得XP。在分发MSI和MS之前,我需要在我的C#源代码中检查OS NAME。 EXE给客户。

  

无需进行更精细的版本控制   我的代码想要查看是否有详细信息   是一个32位WINDOWS XP或64位   WINDOWS 7。

我可以帮忙解决这个问题。

正在考虑的操作系统是64位Win7& 32位Win XP。

7 个答案:

答案 0 :(得分:4)

您可以使用WMI获取操作系统的友好名称。

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem");
String operatingSystem = String.Empty;

foreach (ManagementObject query in searcher.Get())
{
   operatingSystem = query["Caption"].ToString();
   break;
}

您可以使用Microsoft WMI Code Creator这个伟大的工具来生成WMI查询。

答案 1 :(得分:3)

您应该能够从Environment class获取所需的所有信息,特别是OSVersionIs64BitOperatingSystem属性。

答案 2 :(得分:2)

是的,所有给你正确的方向Environment.OSVersion为你提供操作系统版本,但如何知道它的Windows XP或7

您需要比较版本,这里是关注列表

Windows XP 5.1.2600当前SP3

Windows XP Professional x64 Edition 5.2.3790

Windows Vista 6.0.6000当前版本已更改为6.0.6002(SP2)

Windows 7 6.1.7600

更多Windows OS Version Numbers

if (Environment.OSVersion.Version.ToString().Equals("5.1.2600"))
{
    // windows xp 32-Bit with service pack 3
}
else if (Environment.OSVersion.Version.ToString().Equals("  6.1.7600"))
{
    // windows 7
}

答案 3 :(得分:1)

查看System.Environment.OSVersion属性。它的类型为OperatingSystem,其中应包含所有相关信息。

答案 4 :(得分:0)

您应该查看Environment.OSVersionEnvironment.Is64BitOperatingSystem

虽然您需要手动将返回的信息映射到适当的字符串。

答案 5 :(得分:0)

看一下Environment课程。它包含您需要的方法。

简答:

Console.WriteLine("OSVersion: {0}", Environment.OSVersion.ToString());

答案 6 :(得分:0)

您可以从注册表中获取操作系统名称。

string productName = Registry.GetValue(@“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion”,“ ProductName”,“”).ToString(); Console.WriteLine(productName);

输出: //对于Windows 10,我得到了

Windows 10企业版

尝试此操作以获取Windows产品名称