« Pas trouvé » exception générée tout en essayant d'obtenir ID CPU via WMI
-
13-10-2019 - |
Question
J'utilise ce code pour récupérer l'ID du processeur:
public static string getProcessorId()
{
var mc = new ManagementClass("Win32_Processor");
var moc = mc.GetInstances();
foreach (var mo in moc)
{
return mo.Properties["ProcessorId"].Value.ToString();
}
return "Unknown";
}
Je suis sous Windows 7 32 bits, Visual Studio 2008. Malheureusement, une « Introuvable » exception est soulevée par l'appel de méthode mc.GetInstances ().
Voici un peu similaire de code (série HDD chercher):
public static string getVolumeSerialNumber()
{
var disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
return disk["VolumeSerialNumber"].ToString();
}
Ce code échoue également -. La méthode "disk.Get ()" soulève une exception "de classe non valide"
J'ai couru ce code avec UAC désactivé et sur - rien aide
.Qu'est-ce que je fais mal?
La solution
l'installation WMI semble un peu cassé, je l'ai testé votre code getProcessorId sur un ordinateur Windows 7 avec l'UAC, et il fonctionne très bien. « Win32_Processor » est une classe vraiment standard qui devrait être là.
Voici un lien pour diagnostiquer les problèmes WMI: Comment vérifier le référentiel WMI avant de la reconstruire