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

Windows Discussion :

[C++] Lister le matériel de la machine


Sujet :

Windows

  1. #1
    Invité
    Invité(e)
    Par défaut [C++] Lister le matériel de la machine
    Bonjour

    Pour mon projet de BTS, je dois programmer un gestionnaire de parc. L'une des fonctionnalités du client est de lister les logiciels installés et le matériel de la machine.

    Pour lister les logiciels, je parcoure la Base de Registre, il n'y a pas vraiment de soucis de ce côté là (même si c'est un peu ardu).
    Par contre, je ne me vois pas faire la même chose pour lister le matériel. Il y a trop de répertoires à prendre en compte, qui varient selon la machine...


    Donc existe-t-il une solution pour lister (récupérer) le maximum d'informations matérielle ? (une bibliothèque...)


    J'ai déjà réussi à récupérer des informations sur l'OS et le processeur à l'aide de l'API Win32. Mais il ne semble pas y avoir de fonctions pour récupérer plus d'infos que ça (quantité RAM, capacité Disques Durs, nombre DD...).

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Il faut regarder du côté de SetupApi et les fonctions telles que
    SetupDiGetClassDevs
    et
    SetupDiEnumDeviceInterfaces
    Après pour obtenir tout le matos connecté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Handle = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_ALLCLASSES | DIGCF_PRESENT);
    puis les autres fonctions de SetupApi pour obtenir les informations précises.

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Furanku
    Mais il ne semble pas y avoir de fonctions pour récupérer plus d'infos que ça (quantité RAM, capacité Disques Durs, nombre DD...).
    WMI est une autre solution.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses.

    Mon prof m'a aussi conseillé de passer par sysinfo32. Le problème est qu'il n'a pas l'air présent sur toutes les versions de Windows (du moins chez moi, sous XP pro, je ne l'ai pas). En plus, même avec un filtre appliqué dans la commande, il me fournit des informations complètement inutiles et il est difficile d'y faire le tri (faisable mais franchement ardu).

    Pour WMI, j'y ai pensé. Seulement j'avoue que je suis un peu perdu dans la doc. Apparemment ça fonctionne par un système de requêtes ?

    Je vais essayer de faire quelque chose avec SetupApi dans un premier temps, voir ce que ça donne

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Furanku
    Pour WMI, j'y ai pensé. Seulement j'avoue que je suis un peu perdu dans la doc.
    C'est sur que les premiers pas ne sont pas aisés.
    Citation Envoyé par Furanku
    Apparemment ça fonctionne par un système de requêtes ?
    Oui et non. On peut interroger le référentiel à l'aide de WQL.
    Voir :
    http://laurent-dardenne.developpez.com/articles/wmi-p1/
    et
    http://www.developpez.net/forums/d26...mi-sous-linux/

    Le requêtage permet notamment de ne pas rapatrier toutes les données, du poste local ou distant, sur le client mais uniquement celles désirées.
    Quelques exemples dans la faq Delphi , C++ sur MSDN ou codeproject.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci pour ces informations.
    Je vais regarder ça avec attention, et essayer de bien me plonger dans la doc MSDN.

    Bonne journée

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

Discussions similaires

  1. Lister les utilisateurs d'une machine
    Par Le_Suisse dans le forum Langage
    Réponses: 0
    Dernier message: 24/10/2008, 10h37
  2. Lister les fichiers sur une machine réseau
    Par WerKa dans le forum Général Java
    Réponses: 2
    Dernier message: 12/05/2008, 14h24
  3. Lister les processus d'une machine sur un réseau local
    Par Grosbenji dans le forum Windows
    Réponses: 2
    Dernier message: 29/11/2007, 17h59
  4. [D6] Lister les lecteurs d'une machine
    Par Lucien dans le forum Delphi
    Réponses: 3
    Dernier message: 19/09/2006, 15h49
  5. [reseaux] Lister les processus sur une machine donnée
    Par BEAUJAULT dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 29/07/2004, 15h55

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