Si vous utilisez une bibliothèque de wrapper comme Code Pack (http://code.msdn.microsoft.com/WindowsAPICodePack), elle vérifie la version pour vous. Vous allez en avant et appelez les méthodes de bibliothèque et il lancera une exception PlatformNotSupportedException si vous essayez quelque chose qui n'est pas sur le système d'exploitation lorsque vous exécutez.
Vous pouvez également capturer EntryPointNotFoundException si vous appelez P/Invoke dans une DLL Windows. C'est la meilleure approche lorsque vous faites votre propre interop, parce que la fonctionnalité peut être ajoutée (par des mises à jour et des service packs) des années à partir de maintenant dans le système d'exploitation de niveau inférieur. Avec les deux, vous pouvez mettre en cache un type d'indicateur qui vous rappelle qu'il n'y a pas de barre des tâches ou qu'il n'y a pas de bibliothèques ou que vous n'avez aucune fonctionnalité, afin de sauver l'impact de lancer et d'attraper l'exception .
Si vous insistez pour faire votre propre vérification de version et voir sur quel OS vous êtes, veuillez se souvenir de la magie de> =.Vous savez combien de code est là-bas que les tests de la version est exactement XP SP2, puis met en place une boîte de message disant "XP Nécessite XP ou plus tard"? A ton. En fait, c'est pourquoi la version majeure pour Win7 est 6 - de sorte que tout le code de vérification pour "égal à 6" fonctionnerait toujours. Ne sois pas ce mec.
if (Environment.OSVersion.Version.Major >= 6)
{
if (Environment.OSVersion.Version.Minor >= 1)
// Do Win7 thing
else
// Do Vista thing
}
else if (Environment.OSVersion.Version.Major >= 5)
// Do XP thing
Vous pouvez trouver tous les numéros majeurs/mineurs à http://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
Kate
En fait, ce code va faire la bonne chose pour Vista 7.0, 8.0 et d'autres versions mythiques futures. Rats, vérification de version est difficile! Ne vérifiez la version mineure que lorsque vous connaissez exactement la version majeure. –