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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top