Détection windows toutes versions

Soyez le premier à donner votre avis sur cette source.

Vue 5 175 fois - Téléchargée 503 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Nono40
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1 -
Cool, voici enfin les détails qui manquaient dans Win32.hlp...
SamDotNet
Messages postés
11
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
15 avril 2006
-
Je crois que tu l'as bien réussi.
Ca m'a bcp aidé.
J'y ai ajouté une fonction pour déterminer si c'est une plate-forme Windows NT ou Windows. C'est le plus facile du boulot!

a+
cs_reddas
Messages postés
1
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
11 octobre 2003
-
Cher Mr,
C'est la 1er fois dans codesource que je tombe sur
un programme bien ecri.
Dieu vous garde.
reddas.mohamed@caramail.com
good luck.
Encore1ben
Messages postés
68
Date d'inscription
jeudi 19 septembre 2002
Statut
Membre
Dernière intervention
22 février 2008
-
Du Super Bon Boulot ! Comme d'hab ! Chapeau... En plus, j'étais en train de me prendre la tête (en fait, patauger serait le mot) sur un cas similaire ...
Faut arrêter de nous donner des sources, à nous petit débutant, après on apprend plus rien :D
ni69
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
8 -
Merci beaucoup !
Ce code m'est très utile !

@+

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.