Bonjour
D'abord le titre complet
Déterminer la version de Windows à partir de Windows 8.1 .
Dans les anciennes versions de DELPHI (XE starter par exemple)
Traditionnellement la version de Windows était détectée par « GetVersionEx »
Cette fonction est « deprecated » à partir de Windows 8.1 (dixit Microsoft) et il faut utiliser de nouvelles fonctions :
Ces fonctions ne sont pas disponibles dans les anciennes versions de DELPHI (dans mon cas XE starter) Dans les dernières je ne sais pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 IsWindowsVistaSP2OrGreater: Bool; Windows7OrGreater: Bool; IsWindows7SP1OrGreater: Bool; IsWindows8OrGreater: Bool; IsWindows8Point1OrGreater: Booll; IsWindows8Point1OrGreater: Bool; ; IsWindows10OrGreater: Bool; .
J’ai trouvé une unité pour les utiliser dans les anciennes versions
Problème j’ai testé et c’est Ok pour XP, 8.1 (et sans doute pour les autres versions) mais pour Windows 10 ça bug : La fonction IsWindows10OrGreater renvoie False
Pour information extrait de l’unité pour utiliser ces fonctions
Auriez vous une solution pour régler le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Const WIN32_WINNT_NT4 = $0400; WIN32_WINNT_WIN2K = $0500; WIN32_WINNT_WINXP = $0501; WIN32_WINNT_WS03 = $0502; WIN32_WINNT_VISTA = $0600; WIN32_WINNT_WS08 = $0600; WIN32_WINNT_LONGHORN = $0600; WIN32_WINNT_WIN7 = $0601; WIN32_WINNT_WIN8 = $0602; WIN32_WINNT_WINBLUE = $0603; WIN32_WINNT_WIN10 = $0A00; function IsWindows10OrGreater: Bool; stdcall; Implementation function IsWindows8Point1OrGreater; begin Result := IsWindowsVersionOrGreater(HIBYTE(WIN32_WINNT_WINBLUE), LOBYTE(WIN32_WINNT_WINBLUE), 0); end; function IsWindows10OrGreater ; // FG bug sous Windows 10 renvie False begin Result := IsWindowsVersionOrGreater(HIBYTE(WIN32_WINNT_WIN10), LOBYTE(WIN32_WINNT_WIN10), 0); end;
Partager