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

C# Discussion :

WMI : ManagementClass non défini


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut WMI : ManagementClass non défini
    Bonjour,

    Je suis en ce moment sur un projet où je dois récolter l'identification d'un ordinateur (nom de l'hôte, adresse ip, etc.)

    Au moment où j'arrive sur l'adresse physique (adresse mac) je mets bien au début du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Management;
    using System.Management.Instrumentation;
    Et quand je déclare ManagementClass il ne le reconnaît pas... Je regarde à peu près sur tous les docs sur la récupération de l'adresse physique et il faut bien passer par là dont celui-ci. Je ne sais pas d'où vient le problème.

    J'utilise Visual Studio 2008, c'est peut-être par rapport à la version ?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    Essaie-ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    System.Management.ManagementClass myManagementClass = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
                System.Management.ManagementObjectCollection moc = myManagementClass.GetInstances();
                foreach (System.Management.ManagementObject mo in moc)
                {
                    //Console.WriteLine(mo["MacAddress"].ToString());
                    try
                    {
                        MessageBox.Show(mo["MacAddress"].ToString());
                    }
                    catch(System.Exception ex)
                    {}
                }
    Petit truc pour connaître l'origine d'un truc en .net est d'ouvrir Object Browser et faire une recherche.

  3. #3
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.
    Citation Envoyé par ChrisPhoenix Voir le message
    Et quand je déclare ManagementClass il ne le reconnaît pas...
    As-tu ajouté une référence à System.Management ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    @giroux : il n'y a que System.Management.Instrumentation, l'instruction ManagementClass ne fait pas partie de la liste de l'IntelliSense =S

    @eusebe19 : Non je crois pas .. c'est la première fois que j'utilise le WMI.

    Je vous mets le code (qui n'est pas terminé)

    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Net.NetworkInformation;
    using System.Management;
    using System.Management.Instrumentation;
    using System.IO;
     
    namespace MonProjet
    {
        class Program
        {
            //Déclarations
            public static string strChemin = "C:\\Documents and Settings";
     
            static void Main(string[] args)
            {
                //Déclarations des variables
                string Machine;
                IPHostEntry InfoIp;
     
                Console.Clear();
                Console.WriteLine("*** Programme MonProjet ***");
                Console.WriteLine("");
     
                //On récupère toutes les infos concernant les connexions de l'ordinateur ciblé
     
                //Nom de la machine
                Console.WriteLine("Nom de la machine : {0}", Dns.GetHostName());
     
                Machine = Dns.GetHostName();
     
                //ManagementClass myManagementClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
                //ManagementObjectCollection moc = myManagementClass.GetInstances();
                //foreach (ManagementObject mo in moc)
                //{
                //    Console.WriteLine(mo["MacAddress"].ToString());
                //}
     
                InfoIp = Dns.GetHostEntry(Machine);
     
                //Nom de l'hôte
                Console.WriteLine("Nom de l'hôte : {0}", InfoIp.HostName);
     
                for (int i = 0; i < InfoIp.AddressList.Length; i++)
                {
                    //Adresse IP
                    Console.WriteLine("Adresse IP : {0}", InfoIp.AddressList[i]);
     
                    //Adresse MAC
     
                }
     
                //On liste les profils en récupérant les noms de dossier de profil dans "Documents and Settings"
            }
        }
    }

  5. #5
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Citation Envoyé par ChrisPhoenix Voir le message
    Bonjour,

    @giroux : il n'y a que System.Management.Instrumentation, l'instruction ManagementClass ne fait pas partie de la liste de l'IntelliSense =S

    @eusebe19 : Non je crois pas .. c'est la première fois que j'utilise le WMI.
    Les using ne suffisent pas, il faut impérativement que tu ajoutes la référence que je t'ai donnée ci-dessus

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    Mon code fonctionne ici.
    J'ai le framework 3.5 System.Management.ManagementClass est dans mon intellisence.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 82
    Points : 89
    Points
    89
    Par défaut
    eusebe19 à raison, il faut que tu ajoutes la référence System.Management

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Normalement si on déclare les références au début, cela n'est plus utile de le remettre dans le code à la suite, enfin ça doit être logique ?

    J'ai rajouté la référence que vous avez dit mais malgré ça, j'ai toujours les mêmes erreurs :
    Citation Envoyé par Visual Studio
    Erreur 1 : Le type ou le nom d'espace de noms 'ManagementClass' n'existe pas dans l'espace de noms 'System.Management' (une référence d'assembly est-elle manquante ?)
    Erreur 3 : Le type ou le nom d'espace de noms 'ManagementObjectCollection' n'existe pas dans l'espace de noms 'System.Management' (une référence d'assembly est-elle manquante ?)
    Le code modifié :

    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Net.NetworkInformation;
    using System.Management;
    using System.Management.Instrumentation;
    using System.IO;
     
    namespace MonProjet
    {
        class Program
        {
            //Déclarations
            public static string strChemin = "C:\\Documents and Settings";
     
            static void Main(string[] args)
            {
                //Déclarations des variables
                string Machine;
                IPHostEntry InfoIp;
     
                Console.Clear();
                Console.WriteLine("*** Programme MonProjet***");
                Console.WriteLine("");
     
                //On récupère toutes les infos concernant les connexions de l'ordinateur ciblé
     
                //Nom de la machine
                Console.WriteLine("Nom de la machine : {0}", Dns.GetHostName());
     
                Machine = Dns.GetHostName();
     
                System.Management.ManagementClass myManagementClass = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
                System.Management.ManagementObjectCollection moc = myManagementClass.GetInstances();
                foreach (System.Management.ManagementObject mo in moc)
                {
                    Console.WriteLine(mo["MacAddress"].ToString());
                }
     
                InfoIp = Dns.GetHostEntry(Machine);
     
                //Nom de l'hôte
                Console.WriteLine("Nom de l'hôte : {0}", InfoIp.HostName);
     
                for (int i = 0; i < InfoIp.AddressList.Length; i++)
                {
                    //Adresse IP
                    Console.WriteLine("Adresse IP : {0}", InfoIp.AddressList[i]);
     
                    //Adresse MAC
     
                }
     
                //On liste les profils en récupérant les noms de dossier de profil dans "Documents and Settings"
            }
        }
    }
    J'avais installé Framework 4 Client, je l'ai désinstallé si le problème venait de là.. résultat : non.

    Merci d'avance

    Edit : En farfouillant un peu dans l'explorateur d'objets, je viens de trouver la solution.

    En image :

    Il n'est pas nécessaire de remettre "System.Management" au niveau le corps du code vu que c'est déclaré dans le "using"

    Par contre faudrait m'expliquer pourquoi cette méthode marche très bien alors qu'en mettant via les using, la référence n'est plus reconnue... Encore un mystère chez Microsoft que je comprendrais peut-être jamais =/

    Merci pour vos aides et surtout à girouxv pour son petit truc =)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/01/2006, 18h07
  2. Erreur d'analyse XML : entité non définie
    Par ToxiZz dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 16/01/2006, 13h22
  3. id non défini alors qu'il est utilisé
    Par flambo88 dans le forum Langage
    Réponses: 11
    Dernier message: 15/01/2006, 01h36
  4. fonction non définie
    Par ston dans le forum Access
    Réponses: 11
    Dernier message: 12/12/2005, 16h02
  5. [RAR] Fonction rar_open non définie
    Par laulau75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/11/2005, 12h19

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