Salut la communauté,

Voilà, j'ai un léger problème sur l'utilisation de la Win32_LogicalDisk et la méthode ScheduleAutoChk


Ci joint le bout de code qui utilise WMI, la classe Win32_LogicalDisk et la méthode ScheduleAutoChk...


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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
ManagementScope aManagementScope = new ManagementScope("\\\\localhost\\root\\cimv2");
ObjectQuery aObjectQuery = new System.Management.ObjectQuery("select * from Win32_LogicalDisk where DriveType=3");
 
ManagementObjectSearcher aManagementObjectSearcher = new ManagementObjectSearcher(aManagementScope, aObjectQuery);
ManagementObjectCollection aManagementObjectCollection = aManagementObjectSearcher.Get();
 
foreach (ManagementObject aManagementObject in aManagementObjectCollection)
{
    long FreeSpace = long.Parse(aManagementObject["FreeSpace"].ToString());
    long Size = long.Parse(aManagementObject["Size"].ToString());
    long UseSpace = Size - FreeSpace;
 
    FreeSpace = FreeSpace / (1<<20);    // On veut   
    UseSpace = UseSpace / (1<<20);      // le résultat
    Size = Size / (1 << 20);            // en Méga Octets
 
    Console.WriteLine("Name : " + aManagementObject["name"].ToString());
    Console.WriteLine(String.Format("Taille du disque: {0} MO, Espace libre: {1} MO, Espace utilisée: {2} MO \n" , Size, FreeSpace, UseSpace));
 
    try
    {
        object[] parameters = new object[1];
        string[] sLogicalDisk = { aManagementObject["name"].ToString() };
 
        parameters[0] = sLogicalDisk;
 
        // EXCEPTION DECLENCHEE: METHODE INVALIDE, pourquoi ?
        if ((int)aManagementObject.InvokeMethod("ScheduleAutoChk", parameters) == 0)
            Console.WriteLine("SUCCES");
    }
    catch (ManagementException Ex)
    {
        Console.WriteLine(Ex.Message);
    }    
}
Ce qui pose problème:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if ((int)aManagementObject.InvokeMethod("ScheduleAutoChk", parameters) == 0)
     Console.WriteLine("SUCCES");

Une exception est déclenchée: Méthode non valide.




Si quelqu'un à la moindre idée, qu'il n'hésite surtout pas