EDIT: Code Ajouté à imprimer lettre de lecteur.
Vérifiez si cet exemple fonctionne pour vous. Il utilise WMI.
Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
...
Console.WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter
L'échantillon complet de code:
namespace WMISample
{
using System;
using System.Management;
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
Console.WriteLine("Model: {0}", queryObj["Model"]);
foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition"))
{
Console.WriteLine(" Name: {0}", b["Name"]);
foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
{
Console.WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter
}
}
// ...
Console.WriteLine("--------------------------------------------");
}
}
catch (ManagementException e)
{
Console.WriteLine(e.StackTrace);
}
Console.ReadLine();
}
}
}
Je pense que ces propriétés devraient vous aider à distinguer les lecteurs USB d'origine des autres. Testez avec plusieurs lecteurs de stylo pour vérifier si les valeurs sont les mêmes. Voir la référence complète pour Win32_DiskDrive propriétés ici:
http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx
Vérifiez si cet article est d'aucune aide pour vous:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/48a9758c-d4db-4144-bad1-e87f2e9fc979