IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Savoir quel OS est installer sur une machine


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut Savoir quel OS est installer sur une machine
    Bonjour à vous,
    je voudrais savoir comment on fais pour savoir quel OS est sur un poste, j'ai le code suivant qui fonctionne bien mais qui ne détecte pas win xp, comment le détecté ?? et le win 2000 et pris pour le nt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        OSVERSIONINFO info;
        ZeroMemory(&info, sizeof(OSVERSIONINFO));
        info.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
        bool success=GetVersionEx(&info);
        if (!success){
          Edit1->Text=("Information Windows","Alerte","Impossible de trouver les informations demandées");
     
        }
        //Version de windows
        Edit2->Text=("Information Windows","Version",String((int)info.dwMajorVersion)+"."+String((int)info.dwMinorVersion));
        //Numéro de construction
        DWORD buildNumber=info.dwBuildNumber;
        if(info.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
            buildNumber=LOWORD(buildNumber);
            Edit3->Text=("Information Windows","Numéro de construction", String((int)buildNumber));
         //Plateforme utilisée
         String platform="Unknown";
         if(info.dwPlatformId==VER_PLATFORM_WIN32s)
            platform="Win32s";
         else if(info.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS){
            if((info.dwMajorVersion>4)||((info.dwMajorVersion==4)&&(info.dwMinorVersion>0)))
                    platform="Windows 98";
            else
                    platform="Windows 95";
            }
            else if(info.dwPlatformId==VER_PLATFORM_WIN32_NT)
                    platform="Windows NT";
            Edit4->Text=("Information Windows","Plateforme",platform);
        //Service pack principalement pour Windows NT
        String csdVersion=info.szCSDVersion;
        if(csdVersion.IsEmpty()&& info.dwPlatformId==VER_PLATFORM_WIN32_NT)
                csdVersion="Aucun service pack installé";
        Edit5->Text=("Information Windows","Version du service pack", csdVersion);
    }
    Merci de vos réponses par avance.

  2. #2
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2002
    Messages : 103
    Points : 121
    Points
    121
    Par défaut
    Va voir ici :
    http://msdn.microsoft.com/library/de...em_version.asp

    Windows 2000 est bien une plate-forme NT.

  3. #3
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2002
    Messages : 131
    Points : 171
    Points
    171
    Par défaut
    essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    AnsiString wintype="Windows Inconnu";
     
       if (Win32Platform == VER_PLATFORM_WIN32_WINDOWS)
          {
          wintype="Windows 95";
          if (Win32MajorVersion == 4)
             {
             if (Win32MinorVersion >= 90)
                wintype="Windows 98 ME";
             else
                if (Win32MinorVersion >= 10)
                   wintype="Windows 98";
             }
          }
     
       if (Win32Platform == VER_PLATFORM_WIN32_NT)
          {
          wintype="Windows NT";
          if (Win32MajorVersion == 5)
             {
             if (Win32MinorVersion >= 1)
                wintype="Windows XP";
             else
                wintype="Windows 2000";
             }
          }

  4. #4
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Freeze ton code fonctionne à merveille, mais j'ai une petite remarque dessus à faire, j'ai choisi de mettre dans des edit différents pour chaque version et là sur le poste où je suis pour travailler qui est en windows 2000 il m'affiche que mon système est windows 2000 et windows NT, on ne peut pas les rendre indépendant l'un de l'autre ?? Car sur certain poste équipé de windows 2000 à la technologies NT je comprends qu'il puisse y avoir un confusion mais lorsque j'ai que windows 2000 comment faire pour ne plus avoir cette confusion ?? si cela est possible car je sais que le NT et 2000 sont casiment sur la même base.
    Merci de vos réponses par avance.

  5. #5
    Rédacteur
    Avatar de Greybird
    Inscrit en
    juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 673
    Points : 1 251
    Points
    1 251
    Par défaut
    Bonjour,

    Je crois que tu confonds NT et NT4.

    Windows NT4, 2000, XP sont des systèmes NT.

    Cordialement,

    Arnaud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Savoir si Outlook est installé sur un poste
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/02/2007, 13h32
  2. Réponses: 4
    Dernier message: 29/01/2007, 13h41
  3. ''ton software est installé sur n machines"
    Par judor31 dans le forum Delphi
    Réponses: 1
    Dernier message: 04/07/2006, 17h51
  4. reconnaitre quel windows est installé sur un PC
    Par oeil de nuit dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 13/12/2005, 15h53
  5. Comment récupérer la liste des logiciels installés sur une machine ?
    Par david_chardonnet dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 19/09/2003, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo