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

MFC Discussion :

Comment connaître les caractéristiques d'un écran (physique)


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment connaître les caractéristiques d'un écran (physique)
    Bonjour,

    OS: wXP

    Je me bats avec les requêtes WMI....
    J'essaie d'obtenir les caractéristiques d'un écran relié à une machine : marque, modèle, numéro de série, etc...
    Comment est-ce possible via un script? Peut-être pas WMI?...

    là, je calle. Si quelqu'un a une solution, suis preneur. Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    J'essaie d'obtenir les caractéristiques d'un écran relié à une machine : marque, modèle, numéro de série, etc...
    Pour ce qui est des caractéristiques d'affichage de l'écran tu as les fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    GetDeviceCaps
    The GetDeviceCaps function retrieves device-specific information for the specified device. 
     
    int GetDeviceCaps(
      HDC hdc,     // handle to DC
      int nIndex   // index of capability
    );
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DeviceCapabilities
    The DeviceCapabilities function retrieves the capabilities of a printer device driver. 
     
    DWORD DeviceCapabilities(
      LPCTSTR pDevice,         // printer name
      LPCTSTR pPort,           // port name
      WORD fwCapability,       // device capability
      LPTSTR pOutput,          // output buffer
      CONST DEVMODE *pDevMode  // device data buffer
    );
    Fait une recherche sur ces fonctions. Leur usage est fort détaillée.

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    C'est vrai que c'est typiquement un truc faisable avec WMI. Mais ça doit l'être aussi avec les fonctions SetupDi* http://msdn.microsoft.com/library/en-us/devio/base/device_management_functions.asp
    J'ai adapté cet exemple:
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q259695
    pour qu'il m'affiche le nom des écrans branchés.
    => Rajouter au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // récupérer le GUID de la classe "Monitor"
        GUID guidMonitor;
        DWORD nb;
        if ( SetupDiClassGuidsFromName(
            "Monitor",
            &guidMonitor,
            1,
            &nb ) == FALSE )
        {
            cout << "echec SetupDiClassGuidsFromName\n";
            return 1;
        }
    Puis modifier la suite:
    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
     
    // filtrer l'énumération pour lister seulement les moniteurs branchés
        HDEVINFO hDevInfo;
        SP_DEVINFO_DATA DeviceInfoData;
        DWORD i;
     
        hDevInfo = SetupDiGetClassDevs(
            &guidMonitor, // <-- MODIF!!!
            NULL,
            NULL,
            DIGCF_PRESENT );
        if ( hDevInfo  == INVALID_HANDLE_VALUE )
        {
            cout << "echec SetupDiGetClassDevs\n";
            return 1;
        }
    Mais moi j'ai "Ecran Plug-and-Play", le truc générique quoi, J'arrive pas à obtenir beaucoup d'infos. Tu peux jeter un oeil dans le fichier setupapi.h pour d'autres types d'infos à récupérer (autre que SPDRP_DEVICEDESC). En fait ça va simplement lire la base de registre à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum", et même dans DISPLAY encore vu que le moniteur est branché sur la carte video.
    Par exemple chez moi celui qui est branché c'est celui-là:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\ACRAD04\5&26786ae6&0&22446688&01&00
    Et la valeur de sa clé DeviceDesc est bien Écran Plug-and-Play.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Re,

    Ok, j'ai le même soucis "Ecran plug&play" et j'ai le même retour d'infos, mais en passant par des requêtes wmi.

    Je continue les recherches. En tout cas, merci bcp à vous 2 pour les réponses, infos et liens (tjs utiles)

    Bonne journée et à bientôt

  5. #5
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 669
    Points
    10 669
    Billets dans le blog
    3
    Par défaut
    A mon avis tu pourras difficilement avoir mieux que ce qui est affiché dans le gestionnaire de périphériques, soit "Ecran Plug-and-Play" si aucun pilote n'a été installé pour cet écran.
    Pour aller plus loin (interroger le moniteur) j'ai peur qu'il faille descendre au niveau DDK, et ça me dépasse...
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/graphics/hh/graphics/VideoPort_Functions_dc0bda84-97c5-49ba-9084-04149f9be157.xml.asp

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/08/2006, 18h01
  2. [MySQL] Comment connaître les noms des tables existantes
    Par Cygnus Saint dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/03/2006, 20h26
  3. Réponses: 3
    Dernier message: 02/02/2006, 12h03
  4. Comment connaître les fonctions d'une DLL ?
    Par bencot dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 15/06/2005, 09h25

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