Я пытаюсь получить некоторую системную информацию с несколькими классами из пространства имен System.Management , но любая попытка использовать ManagementObjectSearcher или ManagementObjectCollection элементов коллекции приводит к FileNotFoundException .
Ниже я представляю проблемный фрагмент кода:
public static string GetProcessorID() {
var processorID = "";
var query = "SELECT ProcessorId FROM Win32_Processor";
var oManagementObjectSearcher = new ManagementObjectSearcher(query);
foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
processorID = (string)oManagementObject["ProcessorId"];
break;
}
return processorID;
}
Исключение выдается в строке 'foreach' при попытке получить следующий элемент из коллекции.
Это наблюдается на машине с windows xp professional sp3 , с visual studio 2008 professional .Я предполагаю, что это может быть что-то с моим процессором, который является двухъядерным Intel - та же программа на другой машине с аналогичной средой работает отлично.Основное различие между этими машинами - это процессор.
Другие параметры, такие как MACAddress и SystemDrive, предоставляют ту же проблему, которая предполагает, что это может быть скорее программная проблема (WMI?)
Описана очень похожая проблемаздесь -> http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml но решение не решило его.
Есть идеи?Заранее спасибо.
Давид