Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5210 connectés 

 


Dernière réponse
Sujet : Comment obtenir des informations sur le système (CPU, RAM,OS) en C++ ?
z51 ah j'oubliais, pour la quantité de RAM utilise un MEMORYSTATUS:
 
MEMORYSTATUS memory_status;
GlobalMemoryStatus(&memory_status);
RAM_SIZE_EN_MB = (memory_status.dwTotalPhys/(1024*1024))+1;
 
et pour l'OS un OSVERSIONINFO :
 
OSVERSIONINFO osversioninfo;
GetVersionEx(&osversioninfo);

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
z51 ah j'oubliais, pour la quantité de RAM utilise un MEMORYSTATUS:
 
MEMORYSTATUS memory_status;
GlobalMemoryStatus(&memory_status);
RAM_SIZE_EN_MB = (memory_status.dwTotalPhys/(1024*1024))+1;
 
et pour l'OS un OSVERSIONINFO :
 
OSVERSIONINFO osversioninfo;
GetVersionEx(&osversioninfo);
z51 cpuid te fournit des informations de façon "croissante", càd de la plus générale à la plus spécifique.
En gros le shéma est le suivant :
 

  • la fonction 0 te renvoie le nom du constructeur, codé sur 12 caractères. Là tu sais déjà si t'as un Intel, un AMD ou un Cyrix. Sur sandpile y'a 7 constructeurs référencés.


  • la fonction 1 te renvoie le trio famille/modèle/stepping, et à partir de là tu peux affiner la détection :

- la famille c'est en qque sorte la génération de processeur : 486, Pentium, P6, Pentium4 pour Intel, K5, K6, K7 pour AMD.
- le modèle fournit le ... modèle, au sein de la famille, par exemple Athlon (avec cache ext.), Duron ou TBird dans la famille K7, ou encore Céléron, Katmaï, Coppermine, Xeon dans la famille P6.
- le stepping correspond à la version du core, donc d'un intérêt moindre.
 
Voilà, en somme c'est un gros switch.

LMF Si c'est possible avec les AMD, j'ai cherché sur le net, sur Sandpile.org (je crois)(merci Helloworld), ils disent quel sont les instructions avec les CPU AMD/INTEL/CYRIX... mais bon, c'est  :sweat:  pas de mon niveau.
bjone ben je pense qu'apprendre à coder en asm sous le c++ builder est plus facile...
normallement le CPUID/RDTSC est valable pour les AMDs, mais effectivement je doute que les exemples d'Intel reconnaissent un CPU AMD.
LMF et c'était compliqué avec le visual ? parce que pour moi, je connais pas grand chose à l'assembleur c'est donc :hot: pour moi.
freewol Je risque de ne pas bcp t'aider, m'enfin voilà :
j'avais essayé d'utiliser les fonctions de cpuid fournit par intel avec VisualC++ (et ptet d'autres, j'en sais rien). Mais j'ai un thunderbird, et la fonction arrivait pas à reconnaitre le proc. Donc apperemment la bib intel pour C++ ne fonctionnerait qu'avec les intels, donc à éviter.
LMF peux-tu me donner plus de détails SVP ?
bjone bah, là je sais pas quel "degré" de précision tu trouvera...
mais je pas l'interêt d'afficher ce qu'il y a dans le premier onglet des "Propriétés système"... m'enfin c'est toi qui voit...
tu remaqueras que l'emploi de l'asm en C++ Builder et super cool...
 
t'as juste à faire un  
asm {
 mov eax,...
}
et rulez...
LMF C'est bien ca le probleme, j'ai commencé avec les instructions CPUID, mais j'ai pas trop le niveau pour maitriser.
 
Il aurait-il un moyen de lire dans la base de registre (windows indentifiera à ma place).
bjone OS & RAM via les API de l'OS/Base de registre...
 
Identification modèle CPU => Instruction CPUID en asm, introduite par Intel pour le pentium... Cherche chez Intel pour avoir les infos de bases, puis va chez AMD pour savoir les ID en fonctions des CPUs AMD.
(quoique les dernières revs de 486 ont supportés CPUID je crois...)
D'ou le nom de WCPUID... & autres consors...
 
Mesure fréquence CPU => Instruction RDTSC en asm, historiquement idem.
Elle te retourne (par défaut) dans EDX:EAX un compteur qui est incrémenté à chaque tick d'horloge CPU interne, t'a cas poser un timer et tu pourra mesurer alors la freq CPU de manière on ne peu plus précise....
LMF Je suis en train de concevoir un petit programme en C++ (avec Borland Builder C++ 5) or j'aimerais savoir comment obtennir des information sur le systeme qu'il l'éxécute (info sur le modele de CPU, la quantité de RAM, la version de l'OS...).
 
J'ai éssayé avec les fonctions du type get system info mais a part me dire que mon athlon est un 586  :pt1cable: (786 en réalité) ca va pas plus loin.
 
Windows dans les proprietés systemes arrive pourtant a m'indentifier les informations nécessaires.
 
Vous avez une idée pour identifier le systeme  ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)