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

Autres éditeurs Discussion :

Récupération d'informations


Sujet :

Autres éditeurs

  1. #1
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut Récupération d'informations
    Bonjour,

    Pour un projet perso, je cherche à pouvoir récupérer plusieurs informations en C++ sous windows :

    Nom du système d'exploitation (Windows NT par ex.)
    Nom du processeur (AMD Athlon 1500+ par ex.)
    Nom de la carte graphique (NVIDIA GeForce 6800 par ex.)
    Capacité mémoire de la carte graphique (256 Mo par ex.)

    Je recherche déjà le nom des fonctions pour tenter de faire une recherche de mon côté. Merci d'avance pour votre aide


    Nico.

  2. #2
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Après de nombreuses recherches, j'ai enfin réussi à récupérer le nom complet de ma carte graphique grâce à un bout de code trouvé sur le site de MSDN. En revanche, je ne comprends pas bien la première partie du code avec les commandes pré-processeur. Voici le code :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    #include <windows.h>
    #include <cstdio>
    #include <cstdlib>
     
    #ifndef SM_CMONITORS
    typedef HANDLE HMONITOR;
    #endif
     
    #ifndef DISPLAY_DEVICE_PRIMARY_DEVICE
    typedef struct _DISPLAY_DEVICE
    {
            DWORD cb;
            TCHAR DeviceName[32];
            TCHAR DeviceString[128];
            DWORD StateFlags;
            TCHAR DeviceID[128];
            TCHAR DeviceKey[128];
    } DISPLAY_DEVICE, *PDISPLAY_DEVICE;
     
    #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
    #define DISPLAY_DEVICE_PRIMARY_DEVICE      0x00000004
     
    #endif
     
     
    int main (int argc, char**argv)
    {
            BOOL (WINAPI* pEnumDisplayDevices)(PVOID,DWORD,PVOID,DWORD);
            BOOL (WINAPI* pEnumDisplaySettings)(PVOID,DWORD,PVOID);
            (FARPROC)pEnumDisplayDevices  = GetProcAddress(LoadLibrary("USER32"), "EnumDisplayDevicesA");
            (FARPROC)pEnumDisplaySettings = GetProcAddress(LoadLibrary("USER32"), "EnumDisplaySettingsA");
     
            if( pEnumDisplayDevices )
            {
                    DISPLAY_DEVICE dd;
                    ZeroMemory(&dd, sizeof(dd));
                    dd.cb = sizeof(dd);
     
                    DEVMODE dm;
                    ZeroMemory(&dm, sizeof(dm));
                    dm.dmSize = sizeof(dm);
     
                    for( unsigned int i=0; (*pEnumDisplayDevices)(NULL, i, &dd, 0); i++ )
                    {
                            if( (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) &&
                                (dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) )
                            {
                                    printf("Device name : %s\n", dd.DeviceString);
                                    (*pEnumDisplaySettings)(dd.DeviceName, 0, &dm);
                                    printf("Driver version : %d\n", dm.dmDriverVersion);
                                    printf("Vertical refresh rate : %d Hz\n", dm.dmDisplayFrequency);
                                    break;
                            }
                    }
            }
     
            system("PAUSE");
            return EXIT_SUCCESS;
    }

  3. #3
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Bon après avoir passé toute la journée là-dessus j'ai enfin réussi à obtenir ce que je souhaitais. Pour ceux que ça intéresse, j'ai mis le code source et l'exécutable sur mon site à cette adresse car le code est de grande taille :

    http://nicolas.lerme.free.fr/os_test.zip


    Voici un screen' de ce que j'obtiens chez moi :



    Voilà, donc merci à moi-même


    Nico.

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

Discussions similaires

  1. [C# express 2005] Récupération d'information dans une BDD
    Par poussinphp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/05/2006, 22h25
  2. Réponses: 5
    Dernier message: 03/02/2006, 13h47
  3. Récupération des informations memoire
    Par xxiemeciel dans le forum Windows
    Réponses: 2
    Dernier message: 12/08/2005, 16h43
  4. Réponses: 9
    Dernier message: 17/08/2004, 16h16
  5. Réponses: 6
    Dernier message: 28/04/2004, 10h41

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