2009-07-09 7 views
1

Bonjour, J'écris un morceau de code où je veux m'assurer que le code est exécuté sur la machine sur laquelle OS est WindowsXPSP2 ou supérieur. J'ai la version OS du système d'exploitation ex-5.1.5.2 et ainsi de suite.Comment tester si la version du système d'exploitation est supérieure à Windows XP SP2

Je veux juste savoir comment puis-je m'assurer que le système d'exploitation est WindowsXPSP2 ou supérieur? Puis-je vérifier avec le numéro de version> 5.1?

+1

Vérifiez si c'est Vista. Si c'est le cas, il est inférieur à Windows XP SP2. :-) – tvanfosson

+0

pourquoi est ce tag asp.net? Faites-vous cela dans une application Web? – JoshBerke

Répondre

2

Essayez que:

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

(non testé)

EDIT: Le code ci-dessus ne fait fonctionne pas ... voici une autre:

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

il cherche SP2, pas SP3 –

+0

euh, désolé, mauvais copier/coller ... va réparer –

0

Vous pouvez utiliser la version 5 et la propriété OperatingSystem.ServicePack:

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."); 
} 

Je n'ai pas pu le tester, il est basé sur les numéros de version de Thomas.

1

Vous pouvez également interroger la chaîne de service pack à l'aide

Environment.OSVersion.ServicePack 
0

Check out System.Environment.OSVersion. Je crois que XP est Major version 5, Minor version 1. Vous pouvez également vérifier la propriété Platform pour vous assurer qu'elle s'exécute sur le type de système d'exploitation que vous pensez qu'elle fonctionne (c'est-à-dire PAS Mac, Unix, WinCE, Xbox, etc.).

Questions connexes