Salut la communauté,
Voilà, j'ai un légé problème sur l'utilisation de la
Win32_LogicalDisk et la méthode
ScheduleAutoChkCi joint le bout de code qui utilise WMI, la classe Win32_LogicalDisk et la méthode ScheduleAutoChk...
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: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 ;)