2009-07-09 8 views
1

Hallo, ich schreibe ein Stück Code, wo ich sicherstellen möchte, dass der Code onle auf dem Computer ausgeführt wird, in dem OS WindowsXPSP2 oder höher ist. Ich habe OS-Version des Betriebssystems 5.1.5.2 und so weiter.Wie zu testen, ob OS-Version ist größer als Windows XP SP2

Ich möchte nur wissen, wie kann ich sicherstellen, dass das Betriebssystem entweder WindowsXPSP2 oder höher ist? Kann ich es mit Versionsnummer> 5.1 überprüfen?

+1

Überprüfen Sie, ob es Vista ist. Wenn ja, dann ist es kleiner als Windows XP SP2. :-) – tvanfosson

+0

Warum ist dieses asp.net getaggt? Machst du das in einer Webanwendung? – JoshBerke

Antwort

2

bereiten:

Version versionXPSP2 = new Version(5,2); 
if (Environment.OSVersion.Version >= versionXPSP2) 
{ 
    // this is XP SP2 or higher 
} 

(nicht getestet)

EDIT: Der obige Code tatsächlich funktioniert nicht ... hier ist ein anderes:

Version version = Environment.OSVersion 
if (version.Major > 5 || (version.Major == 5 && version.Minor >= 1 && version.ServicePack >= "Service Pack 2")) 
{ 
    // this is XP SP2 or higher 
} 
+1

er sucht SP2, nicht SP3 –

+0

äh, sorry, schlechte Kopie/Paste ... wird behoben –

0

Sie können die Version 5 und die OperatingSystem.ServicePack-Eigenschaft verwenden:

OperatingSystem os = Environment.OSVersion; 
if (os.Version.Major > 5 || (os.Version.Major == 5 && os.Version.Minor >= 1 && Int32.Parse(os.ServicePack.Replace("Service Pack ", "")) >= 2)) 
{ 

} 
else 
{ 
    throw new Exception("OS not supported."); 
} 

Ich konnte es nicht testen, es basiert auf Thomas Versionsnummern.

1

Alternativ können Sie das Service Pack String-Abfrage

Environment.OSVersion.ServicePack 
0

Check out System.Environment.OSVersion verwenden.

Ich glaube, XP ist Major-Version 5, Minor-Version 1. Sie sollten auch die Platform-Eigenschaft überprüfen, um sicherzustellen, dass es auf dem Betriebssystem-Typ läuft, auf dem Sie denken, dass es läuft (dh NICHT Mac, Unix, WinCE, Xbox, etc.).

Verwandte Themen