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.