Comment puis-je détecter Windows 8.1 dans une application de Bureau
Dans le Windows 8.1 aperçu de l'Environnement.OSVersion.Version renvoie les mêmes numéros de version de Windows 8. Est-il d'autres moyen de détection de Windows 8.1.
Vous avez marqués ce que winapi et pourtant, vous faites référence à
Vérification du numéro de version de l'OS est vraiment pas la meilleure façon de déterminer si une fonction est prise en charge. Pourquoi avez-vous besoin de savoir si vous êtes en cours d'exécution sur Windows 8 ou 8.1? Quel problème essayez-vous de résoudre?
Il n'est pas. Je viens de rencontré le même problème. la version est 6.2.9200 qui est le même que win 8.
Cody, Dans ce cas c'est le meilleur moyen, la fonctionnalité dont j'ai besoin est profonde dans le spouleur d'impression, les tests pour qu'il ne ferait pas pour une expérience utilisateur attrayante.
Environment.OSVersion
qui est un .NETism. Qui avez-vous besoin d'une solution pour?Vérification du numéro de version de l'OS est vraiment pas la meilleure façon de déterminer si une fonction est prise en charge. Pourquoi avez-vous besoin de savoir si vous êtes en cours d'exécution sur Windows 8 ou 8.1? Quel problème essayez-vous de résoudre?
Il n'est pas. Je viens de rencontré le même problème. la version est 6.2.9200 qui est le même que win 8.
Cody, Dans ce cas c'est le meilleur moyen, la fonctionnalité dont j'ai besoin est profonde dans le spouleur d'impression, les tests pour qu'il ne ferait pas pour une expérience utilisateur attrayante.
OriginalL'auteur Tony Edgecombe | 2013-07-01
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à cet article:
Version du système d'exploitation des changements dans Windows 8.1 Preview
Ce qu'il dit, c'est que
GetVersion
mensonges à propos de la véritable version de l'OS, sauf si vous explicitement direct 8.1 dans votre manifeste.Vous devez ajouter les éléments suivants pour le manifeste de l'application:
Si vous ne voulez pas faire, que vous pouvez vérifier la clé de registre suivante:
Version actuelle vous donnera 6.3
Version actuelle nmber sera 9431
Je pense que vous devriez ajouter à tous. si ce n'est dans la doc MSDN ils devraient avoir écrit seulement <!-- Windows 8.1 --> * <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
Je suppose que Windows 7 ne savez pas le GUID de Windows 8, donc si vous ne voulez pas rencontrer des problèmes sur Windows 7, tous les inclure. Semble logique, hm? 😉
/clin..... Vraiment?
Windows 10 GUID: 8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a
OriginalL'auteur user844541
Une autre possibilité est d'utiliser le
VerifyVersionInfo
fonction qui retourne le bon résultat, même si votre application n'a pas le manifeste correspondant fichier mentionné par user844541.Exemple:
Utilisation:
OriginalL'auteur Paul
Utilisation
ntdll!RtlGetVersion
. C'est ce que les deuxGetVersionEx
etVerifyVersionInfo
utiliser, et il donne le numéro de version correct. Il prend un pointeur vers uneOSVersionInfoExW
structure, commeGetVersionExW
. Si elle réussit, elle renvoieSTATUS_SUCCESS
(0).J'ai essayé RtlGetVersion et il n'est pas affecté par le shim - il retourné 10 (VerifyVersionInfo n'a pas, à moins que le manifeste a été mis à jour).
Ce devrait être le plus upvoted et de la accepté de répondre, tout simplement parce que c'est la meilleure. Le manifeste de l'outil qui crée le plus de tracas qu'elle n'en résout le problème pour tout ce qui est un peu en dehors de la boîte, Microsoft a pensé pour elle. Ce fonctionne tout simplement autour d'elle.
au moins pour l'instant. Impossible de dire ce qui va arriver avec la prochaine version de Windows. Mon "Quelle version de Windows est-ce?" routine est maintenant jusqu'à huit différentes méthodes, dans l'espoir qu'au moins on va continuer à travailler dans l'avenir.
Compte tenu de MSFT proclamé Windows 10 va être la dernière version de Windows? ... demi-sourire
OriginalL'auteur slipstream
Je ne suis pas sûr que vous voulez aller de ce profond mais il est facilement éventuellement pour obtenir exact de la version du système d'exploitation via une simple requête WMI appeler comme décrit ci-dessous. J'ai mentionné une méthode que vous pouvez le brancher directement dans votre code pour obtenir la version du système d'exploitation. Espaces de noms requis pour être importés pour cet extrait de code C# a été mentionné juste au-dessus de la fonction :
Si j'ai toujours croyons fermement que
System.Environment.OSVersion.Version
devrait être en mesure de répondre à la plupart de vos besoins, sauf si vous avez quelque chose de très spécifique en ce qui concerne la cible de Windows 8.1. En fait, j'ai utilisé la même astuce pour l'une des exigencesSystem.Environment
classe mensonges à propos de la version de l'OS si votre application ne s'est pas manifestée pour Windows 8.1 système d'exploitation.OriginalL'auteur RBT