Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉTECTION WINDOWS TOUTES VERSIONS


Information sur la source

Catégorie :API Niveau : Initié Date de création : 23/03/2002 Date de mise à jour : 03/11/2004 22:16:33 Vu / téléchargé: 3 379 / 336

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Comment connaître la versionde Windows sur laquelle s'éxécute votre programme, de 3.1 à XP ?
 

Source

  • //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;
//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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 novembre 2004 22:16:33 :
Une version beaucoup plus complète et à jour est disponible à l'adresse : http://www.swissdelphicenter.ch/en/showcode.php?id=316 Si ça peut rendre service...

Commentaires et avis

signaler à un administrateur
Commentaire de Nono40 le 06/04/2002 22:14:41

Cool, voici enfin les détails qui manquaient dans Win32.hlp...

signaler à un administrateur
Commentaire de SamDotNet le 06/10/2003 12:58:45

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+

signaler à un administrateur
Commentaire de reddas le 11/10/2003 19:18:32

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.

signaler à un administrateur
Commentaire de Encore1ben le 26/11/2003 04:13:10

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

signaler à un administrateur
Commentaire de ni69 le 26/06/2004 17:33:14

Merci beaucoup !
Ce code m'est très utile !

@+

signaler à un administrateur
Commentaire de jmp77 le 28/09/2004 13:55:06

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.

signaler à un administrateur
Commentaire de jmp77 le 28/09/2004 15:11:53

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.

signaler à un administrateur
Commentaire de grandvizir le 03/11/2004 20:32:31

Très sympa cette source...

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.