获取Windows版本

有没有简单的方法来获得Windows版(家庭,专业等)?

几个这样做的方法:

  1. 您可以在WMI中解析Win32_OperatingSystem类的caption字段。
  2. 您可以查看WMI中的Win32_OperatingSystem类中的OSProductSuiteOperatingSystemSKU字段。
  3. 你可以使用P / Invoke来移植这个C ++程序 。

这个博客文章详细介绍了获取Windows(XP / Vista / 7 /等)的“主要”版本,紧接着这篇博客文章详细介绍了如何使用WMI获取额外的信息。

在第二个链接的代码是有点长,我不知道从外部网站的大块代码复制没有明显的许可证,所以我不把代码放在这个答案。

如果你引用了Microsoft.VisualBasic.Devices命名空间,你可以这样做:

 ComputerInfo computerInfo = new ComputerInfo(); string fullName = computerInfo.OSFullName; // ie "Microsoft Windows 7 Ultimate" 

您可以在您的c#应用程序中使用Microsoft.VisualBasic – 就像任何其他库一样。

有点。 以这种方式使用这个类 。

简单的答案? 只要看看注册表。

HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProductName

HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ CSDVersion

它没有WMI的开销(每次调用50ms),并给出了全名。