c # - Få Windows Edition

Indlæg af Hanne Mølgaard Plasc

Problem



Er der nogen nem måde at få Windows Edition på (Home, Professional osv.)?

Bedste reference


Par måder at gøre dette på:



  1. Du kan analysere feltet caption i klassen Win32\_OperatingSystem i WMI.

  2. Du kan se på OSProductSuite og OperatingSystemSKU felter i klassen Win32\_OperatingSystem i WMI.

  3. Du kan sende dette C ++-program ved hjælp af P/Invoke.


Andre referencer 1


Dette blog-indlæg går i detaljer om at få den 'store' version af Windows (XP/Vista/7/osv.), Og det efterfølges af dette blogindlæg, der beskriver, hvordan man bruger WMI til at hente den ekstra information. [7] [8] [9]


Koden i det andet link er lidt lang, og jeg er aldrig sikker på at kopiere store stykker kode fra eksterne websteder uden en indlysende licens, så jeg lægger ikke koden i dette svar.

Andre referencer 2


Hvis du henviser til Microsoft.VisualBasic.Devices navneområde kan du gøre dette:


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


Du kan bruge Microsoft.VisualBasic i dine c # apps - det er ligesom et andet bibliotek.

Andre referencer 3


Sort af. Brug denne klasse på denne måde. [10] [11]

Andre referencer 4


Nemt svar? Bare se i registreringsdatabasen.


HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Produktnavn


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


Det har ikke overhead af WMI (50ms hvert opkald), og det giver det fulde navn.