Comment connaître la versionde Windows sur laquelle s'éxécute votre programme, de 3.1 à XP ?
Source / Exemple :
//Déclarer un type énuméré :
TWindowsVersion = (twvUnknow, twvWin31, twvWin951, twvWin952, tWvWin981,
tWvWin982, tWvWinme, tWvWin9x, tWvWinnt35, tWvWinnt4,
tWvWin2k, tWvWinxp, tWvWinnt);
//*************************************************************
// Fonction Trouvant la Version de Windows
//*************************************************************
function WindowsVersion:TWindowsVersion;
var
VI : TOSVersionInfo;
WinVersion : TWindowsVersion;
begin
VI.dwOSVersionInfoSize:= SizeOf(VI);
GetVersionEx(VI);
WinVersion := twvunknow ;
case VI.dwPlatformID of
VER_PLATFORM_WIN32s: WinVersion := tWvWin31;
VER_PLATFORM_WIN32_WINDOWS:
case VI.dwMinorVersion of
0 : if Trim(VI.szCSDVersion[1]) = 'B' then
WinVersion:= tWvWin952
else
WinVersion:= tWvWin951;
10 : if Trim(VI.szCSDVersion[1]) = 'A' then
WinVersion:= tWvWin982
else
WinVersion:= tWvWin981;
90 : if (VI.dwBuildNumber = 73010104) then
WinVersion:= tWvWinme;
else WinVersion:= tWvWin9x;
end;
VER_PLATFORM_WIN32_NT:
case VI.dwMajorVersion of
3 : WinVersion:= tWvWinnt35;
4 : WinVersion:= tWvWinnt4;
5 : case VI.dwMinorVersion of
0 : WinVersion:= tWvWin2k;
1 : WinVersion:= tWvWinxp;
else WinVersion:= tWvWinnt
end;
end;
end;
result := WinVersion;
end;
function WindowsVersionStr:string;
var
Winver : TWindowsVersion;
begin
// on récupère le résultat ainsi:
// VERSION DE WINDOWS
WinVer := WindowsVersion;
Result := 'Inconnu';
case WinVer of
twvunknow : Result :='Inconnu';
twvwin31 : Result :='Windows 3.1';
twvwin951 : Result :='Windows 95 OSR 1';
twvwin952 : Result :='Windows 95 OSR 2';
twvwin981 : Result :='Windows 98 OSR 1';
twvwin982 : Result :='Windows 98 OSR 2';
twvwinme : Result :='Windows Me';
twvwin9x : Result :='Windows 9x'; // Si Windows Inconnu parmi les Win9x
twvwinnt35 : Result :='Windows NT 3.5';
twvwinnt4 : Result :='Windows NT 4';
twvwin2k : Result :='Windows 2000';
twvwinxp : Result :='Windows XP';
twvwinnt : Result :='Windows NT'; // Si Windows Inconnu parmi les WinNT
end;
end;
Conclusion :
Ce code n'est pas de moi à l'origine, mais je l'ai retravaillé pour obtenir deux versions :
- l'une renvoie un type TWindowsVersion
- l'autre renvoie la version sous forme de chaîne
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.