Получить Windows Edition

Есть ли простой способ получить Windows Edition (Home, Professional и т.д.)?

Ответ 1

Несколько способов сделать это:

  • Вы можете проанализировать поле caption класса Win32_OperatingSystem в WMI.
  • Вы можете посмотреть поля OSProductSuite и OperatingSystemSKU в классе Win32_OperatingSystem в WMI.
  • Вы можете передать эту программу на С++, используя P/Invoke.

Ответ 2

В этом сообщении в блоге подробно обсуждается получение "основной" версии Windows (XP/Vista/7/etc.), и это после этого это сообщение в блоге, в котором подробно описывается использование WMI для получения дополнительной информации.

Код во второй ссылке немного длинный, и я никогда не уверен в копировании больших кусков кода с внешних сайтов без очевидной лицензии, поэтому я не помещаю код в этот ответ.суб >

Ответ 3

Если вы ссылаетесь на пространство имен Microsoft.VisualBasic.Devices, вы можете сделать это:

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

Вы можете использовать Microsoft.VisualBasic в своих приложениях С#, как и в любой другой библиотеке.

Ответ 5

Легкий ответ? Просто загляните в реестр.

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

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

У него нет накладных расходов на WMI (50 мс каждый вызов), и он дает полное имя.