begin process at 2010 03 21 18:55:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > DÉTECTION WINDOWS TOUTES VERSIONS

DÉTECTION WINDOWS TOUTES VERSIONS


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 516 / 348

Auteur : Delphiprog

Ecrire un message privé
Site perso
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

Les Membres Club peuvent 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...

 Sources du même auteur

Source avec Zip TABLE DE CORRESPONDANCE TYPES DE DONNÉES API/PASCAL OBJET
Source avec Zip Source avec une capture GÉNÉRER DES PDF AVEC DELPHI ET PDF CREATOR
Source avec Zip Source avec une capture DESIGN PATTERN OBSERVER : IMPLÉMENTATION RÉUTILISABLE
Source avec Zip DESIGN PATTERN STRATÉGIE APPLIQUÉ AU CODE "JOURNAL DE DÉBUGG...
Source avec Zip Source avec une capture DESSINER UN RECTANGLE DE SÉLECTION AU DESSUS D'AUTRES COMPOS...

 Sources de la même categorie

Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE... par f0xi
Source avec Zip Source avec une capture AUTO-COMPLÉTION D'UN CONTRÔLE DE SAISIE par Bacterius
Source avec Zip CARDS GAME SDK 1.0.0.0 par f0xi
Source avec Zip Source avec une capture TRAYICON - VOTRE ICONE DANS LA BARRE DES TACHES par Bacterius
Source avec Zip Source avec une capture WINHIDER _ CACHER UN PROGRAMME DE L'ÉCRAN ET DE LA BARRE DE ... par soldier8514

Commentaires et avis

Commentaire de Nono40 le 06/04/2002 22:14:41

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

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+

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.

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

Commentaire de ni69 le 26/06/2004 17:33:14

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

@+

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.

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.

Commentaire de grandvizir le 03/11/2004 20:32:31

Très sympa cette source...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales