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.
Merci de vos réponses par avance.
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); }
Partager