“Non trovato” eccezione generata durante il tentativo di ottenere l'ID della CPU tramite WMI

StackOverflow https://stackoverflow.com/questions/4533756

Domanda

Sto usando questo codice per andare a prendere l'id del processore:

    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";
    }

Sono in esecuzione Windows 7 a 32 bit, Visual Studio 2008. Purtroppo, un'eccezione "Not found" viene sollevata dalla mc.GetInstances () chiamata di metodo.

Ecco un po 'di codice simile (prendere HDD di serie):

    public static string getVolumeSerialNumber()
    {
        var disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
        disk.Get();
        return disk["VolumeSerialNumber"].ToString();
    }

Questo codice fallisce anche -. Il "disk.Get ()" metodo solleva un'eccezione di "classe non valida"

Ho eseguito questo codice con UAC disattivato e sul - niente aiuta .

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

installazione

WMI sembra un po 'rotto, ho provato il codice getProcessorId su un Windows 7 con UAC, e funziona benissimo. "Win32_Processor" è una classe molto standard che dovrebbe essere lì.

Ecco un link per aiutare a diagnosticare i problemi WMI: Come controllare l'archivio WMI prima di ricostruirlo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top