Je dois être en mesure de récupérer (par programmation via C#) certaines informations disponibles via le Gestionnaire de périphériques Windows. Plus précisément, je fais référence à des informations sur l'onglet Détails d'une boîte de dialogue Propriétés du périphérique. Dans mon cas, j'ai besoin de récupérer la propriété "Location Information" pour les cartes réseau sur le PC. Idéalement, je préférerais le faire en utilisant un appel d'API via WMI ou similaire, mais je n'ai pas été en mesure de trouver ou comprendre comment faire pour cela. Quoi qu'il en soit, si quelqu'un a des informations sur la façon de le faire en utilisant soit DevCon ou une série d'appels API, j'apprécierais grandement toute aide. J'ai trouvé un exemple de code dans un autre article here (que j'ai copié ci-dessous) mais cela ne m'a pas donné l'information que je cherche.Récupération par programme des «informations d'emplacement» de l'adaptateur réseau à partir de l'onglet Détails du gestionnaire de périphériques
private static void test()
{
ManagementPath path = new ManagementPath();
ManagementClass devs = null;
path.Server = ".";
path.NamespacePath = @"root\CIMV2";
path.RelativePath = @"Win32_PnPentity";
System.IO.File.Delete(fileName);
using (devs = new ManagementClass(new ManagementScope(path), path, new ObjectGetOptions(null, new TimeSpan(0, 0, 0, 2), true)))
{
ManagementObjectCollection moc = devs.GetInstances();
foreach (ManagementObject mo in moc)
{
try
{
PropertyDataCollection devsProperties = mo.Properties;
foreach (PropertyData devProperty in devsProperties)
{
if (devProperty.Type == CimType.DateTime)
{
if (devProperty.Value != null)
{
Console.WriteLine("Date {0}", ToDateTime(devProperty.Value.ToString()));
System.IO.File.AppendAllText(fileName, "Date " + ToDateTime(devProperty.Value.ToString()) + Environment.NewLine);
}
}
else
{
Console.WriteLine("Property = {0}\t Value = {1}", devProperty.Name, devProperty.Value);
System.IO.File.AppendAllText(fileName, "Property = " + devProperty.Name + "\t Value = " + devProperty.Value + Environment.NewLine);
}
}
if (String.IsNullOrEmpty(mo["DeviceID"].ToString()))
{
System.IO.File.AppendAllText(fileName, "Device ID was NULL" + Environment.NewLine);
Console.WriteLine("****** Device ID was NULL ******");
continue;
}
int count = 0;
RelatedObjectQuery relatedQuery;
try
{
relatedQuery = new RelatedObjectQuery("associators of {Win32_PnPEntity.DeviceID='" + mo["DeviceID"] + "'}");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(new ManagementScope(path), relatedQuery);
foreach (ManagementObject mob in searcher.Get())
{
System.IO.File.AppendAllText(fileName, "--------------------------->>>>>>" + Environment.NewLine);
Console.WriteLine("--------------------------->>>>>>");
System.IO.File.AppendAllText(fileName, mob["Description"].ToString() + Environment.NewLine);
Console.WriteLine(mob["Description"]);
++count;
}
}
catch (Exception fEx)
{
string temp = fEx.Message;
continue;
}
System.IO.File.AppendAllText(fileName, "----------------------" + Environment.NewLine);
Console.WriteLine("----------------------");
}
catch (Exception fEx)
{
string temp = fEx.Message;
}
}