Problème accès refusé en utilisant de "ManagementObject" en C#

ttvi2005 Messages postés 14 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 12 août 2006 - 26 févr. 2006 à 12:18
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 26 févr. 2006 à 13:35
Bonjour à tous,

J'essaie de faire une fonction en C# pour lire le numero de serie de mes disques durs sous Windows XP.

...
ManagementClass mc = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks = mc.GetInstances();
foreach(ManagementObject disk in disks)
{
string volume_ID = disk["DeviceID"].ToString();
string volume_SN = disk["VolumeSerialNumber"].ToString();
...
}
...

Mais à l'execution, le programme se plante sur une exception de type "Accès refusé". Apparement, c'est au niveau de "foreach(ManagementObject disk in disks)", plus exactement au niveau de la variable "disks".

Est-ce que quelqu'un sait si il y a des services ou des autorisations à configurer au niveau de windows ?

Merci de vos réponses.

1 réponse

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 févr. 2006 à 13:35
Salut,

Déjà ta boucle est dangereuse, si par exemple ton lecteur disquettes est vide, tu vas te retrouver avec des NullReferenceException

ManagementClass mc = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks = mc.GetInstances();
foreach(ManagementObject disk in disks)
{
string volume_ID = disk["DeviceID"] as string;
string volume_SN = disk["VolumeSerialNumber"] as string;


if ( volume_ID != null && volume_SN != null )
{
...
}
}

/*
coq
MVP Visual C#
*/
0
Rejoignez-nous