Bonjour,
Pour clore provisoirement la discussion J’en fais la synthèse :
Pour déterminer la version de Windows :
1- « GetVersionEx() » ;
Ok jusqu’à Windows 8.1 mais pas au-delà .
Microsoft déclare cette fonction « deprecated » et préconise d’utiliser le set de fonctions "isWindowsxxxOrGreather"
Ces fonctions sont boguées : Windows 10 n’est pas détecté, Windows XP service pack 3 est détecté simplement Windows XP.
D’ailleurs dans un autre billet
https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
Microsoft indique qu’il vaut mieux ne pas les utiliser et que pour être sur il faut utiliser « loadlibrairy » et tester l’existence des fonctions spécifiques à l’OS !
Un peu approximatif tout cela …
2- Il semble possible d’utiliser VMI mais c’est pas forcément très simple.
3- Le registre
Mais finalement on peut (1), détecter très simplement l’OS en lisant le registre (il existe des clés spécifiques à Windows 10).
Ci-joint un petit programme démo.
Je n’ai pu le tester que sur les OS que je possède : XP 32 bits, Windows 8.1 64 bits, Windows 10 64 bits.
S’i certains veulent le tester sous d’autres OS et services pack je ferai les mises au point éventuelles.
Nota :
Pour le build sous XP sp3 la clé « Current build » donne un résultat erroné ( mais c’est indiqué dans la clé !) c’est « BuildLab » qui donne la bonne valeur …
(1), en l’attente du débogage éventuel , par Microsoft, de « IswindowsxxxGreather than »