Ich möchte wissen, welche Windows-Version der PC in C # Framework 3.5 hat.
Ich habe versucht,
zu verwendenBetriebssystem os = Environment.OSVersion;
Version ver = os.Version;
Aber das Ergebnis ist
Platform: WIN32NT
Version 6.2.9200
Version untergeordnete: 2
Version Major: 6
Das Problem ist, dass ich "Windows 8 Pro" habe ...
Wie kann ich es erkennen?
Danke
Sie müssen die Versionsnummern selbst mit dem entsprechenden Zeichenfolgenwert abgleichen.
Hier ist eine Liste des letzten Windows-Betriebssystems und ihrer entsprechenden Versionsnummer:
* Für Anwendungen, die für Windows 8.1 oder 10 manifestiert wurden. Anwendungen, die nicht für 8.1 / 10 manifestiert sind, geben den Windows 8-Betriebssystemversionswert (6.2) zurück.
Auch von derselben Quelle:
Die Identifizierung des aktuellen Betriebssystems ist normalerweise nicht der beste Weg um zu bestimmen, ob ein bestimmtes Betriebssystemmerkmal vorhanden ist. Dies liegt daran, dass dem Betriebssystem möglicherweise neue Funktionen hinzugefügt wurden in einer weitervertreibbaren DLL. Anstatt den Version-API-Helper zu verwenden Funktionen zur Ermittlung der Betriebssystemplattform oder -version Nummer, testen Sie auf das Vorhandensein des Features selbst.
In meinem Szenario brauchte ich meine Anwendung, um Computerinformationen für mögliche Fehlerberichte und Statistiken zu erfassen.
Ich habe keine Lösungen gefunden, bei denen ein Anwendungsmanifest hinzugefügt werden musste. Die meisten Vorschläge, die ich beim googlen gefunden habe, haben das leider nur angedeutet.
Tatsache ist, dass bei Verwendung eines Manifests jede Betriebssystemversion manuell hinzugefügt werden muss, damit diese bestimmte Betriebssystemversion sich zur Laufzeit selbst melden kann.
Mit anderen Worten, dies wird zu einer Race-Bedingung: Ein Benutzer meiner App kann sehr gut eine Version meiner App verwenden, die das verwendete Betriebssystem voraussetzt . Ich müsste die App sofort aktualisieren, wenn eine neue Betriebssystemversion von Microsoft gestartet wurde. Ich müsste die Benutzer auch zwingen, die App gleichzeitig mit der Aktualisierung des Betriebssystems zu aktualisieren.
Mit anderen Worten, nicht sehr machbar .
Nachdem ich die Optionen durchgeblättert hatte, fand ich einige Verweise (überraschend wenige im Vergleich zum App-Manifest), die stattdessen die Verwendung von Registry-Lookups vorschlugen.
Meine (abgehackte) Klasse ComputerInfo
mit den Eigenschaften WinMajorVersion
, WinMinorVersion
und IsServer
sieht folgendermaßen aus:
Ich habe das OsInfo nugget veröffentlicht, um Windows-Versionen einfach zu vergleichen.
%Vor%Tags und Links .net c# operating-system windowsversion