Bonjour !
Je développe actuellement une DLL qui me permettra de récupérer les informations du système comme le processeur, cartes graphiques, disques ...
Du coup, voici un petit exemple :
La classe Processor contient un duo variable/propriété, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SysInfo si = new SysInfo(); Processor[] p = si.GetProcessor(); Graphic[] g = si.GetGraphics();
Pour 'remplir' la classe je procède comme ceci :
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 private int numberOfCores; private int numberOfLogicalProcessors; public int NumberOfLogicalProcessors { get { return numberOfLogicalProcessors; } internal set { numberOfLogicalProcessors = value; } } public int NumberOfCores { get { return numberOfCores; } internal set { numberOfCores = value; } }
Et voici la méthode Load qui me pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public Graphic[] GetGraphics() { query = "SELECT * FROM Win32_VideoController"; mos.Query.QueryString = query; moc = mos.Get(); Load(Components.Graphics, moc); return graphics; }
Coté processeur, récupérer les informations ne pose aucun problème, sauf que quand je veux récupérer les informations sur les cartes graphiques via la query "SELECT * FROM Win32_VideoController", j'ai une exception au niveau du commencement du foreach :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 private void Load(Components c, ManagementObjectCollection moc) { foreach (ManagementObject mo in moc) { int i = 0; if (c == Components.Graphics) { graphics = new Graphic[moc.Count]; Graphic g = new Graphic(); g.AdapterCompatibility = RequestString(mo, "adaptercompatibility"); // etc pour les autres composants
Il y a à peine 2 heures de cela, et depuis le début du projet, je n'avais absolument aucun problème, pas d'exception de ce coté-ci ... Du coup je me sens un peu perdu ... J'avais déjà eu cette erreur lorsque j'avais fait une faute dans la requête, mais là cela m'a l'air bon ... http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspxUne exception non gérée du type 'System.Management.ManagementException' s'est produite dans System.Management.dll
Informations supplémentaires : Classe non valide
Désolé s'il y peut-être un peu beaucoup de code, je voulais être clair !
Merci par avance !
Partager