Détection windows toutes versions

Soyez le premier à donner votre avis sur cette source.

Vue 5 302 fois - Téléchargée 522 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

Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
15
Très sympa cette source...
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
5
Désolé pour mon idiote question je ferrais mieux de tester les sources avant de poser des questions.

Très bonnes sources encore merci delphiprog.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
5
Hello,

Est ce que quelqu'un saurait comment récupérer les services pack pour windows nt et 2000?

Merci et encore bravo pour cette fonction.
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
9
Merci beaucoup !
Ce code m'est très utile !

@+
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
Afficher les 8 commentaires

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.