WMI:在插入时获取 USB 设备描述
Posted
技术标签:
【中文标题】WMI:在插入时获取 USB 设备描述【英文标题】:WMI: Get USB device description on insertion 【发布时间】:2011-10-02 07:50:36 【问题描述】:如何在插入 USB 设备时获取设备 ID 和其他描述? 我找到了一个如何获得有关 USB 设备插入/移除通知的示例。但是如何获取设备描述信息呢?
这是我的代码 sn-p:
WqlEventQuery q;
ManagementScope scope = new ManagementScope("root\\CIMV2");
scope.Options.EnablePrivileges = true;
try
q = new WqlEventQuery();
q.EventClassName = "__InstanceDeletionEvent";
q.WithinInterval = new TimeSpan(0, 0, 3);
q.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'";
w = new ManagementEventWatcher(scope, q);
w.EventArrived += new EventArrivedEventHandler(USBRemoved);
w.Start();
... catch()....
更新:实际上,它是一个带有 USB 连接的串行 COM 设备。所以没有 driveName 属性。如何获取 USB 描述,可以在设备管理器中看到? WMI 是否在有关 USB 插入的通知中提供此信息?
【问题讨论】:
【参考方案1】:完成新答案根据您更新的答案。您可以检查任何连接的 USB 设备:
ManagementScope sc =
new ManagementScope(@"\\YOURCOMPUTERNAME\root\cimv2");
ObjectQuery query =
new ObjectQuery("Select * from Win32_USBHub");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(sc, query);
ManagementObjectCollection result = searcher.Get();
foreach (ManagementObject obj in result)
if (obj["Description"] != null) Console.WriteLine("Description:\t" + obj["Description"].ToString());
if (obj["DeviceID"] != null) Console.WriteLine("DeviceID:\t" + obj["DeviceID"].ToString());
if (obj["PNPDeviceID"] != null) Console.WriteLine("PNPDeviceID:\t" + obj["PNPDeviceID"].ToString());
(请参阅MSDN WMI tasks examples)
或查看任何COM ConnectedDevice
ManagementScope sc =
new ManagementScope(@"\\YOURCOMPUTERNAME\root\cimv2");
ObjectQuery query =
new ObjectQuery("Select * from Win32_SerialPort");
searcher = new ManagementObjectSearcher(sc, query);
result = searcher.Get();
foreach (ManagementObject obj in result)
if (obj["Caption"] != null) Console.WriteLine("Caption:\t" + obj["Description"].ToString());
if (obj["Description"] != null) Console.WriteLine("Description:\t" + obj["DeviceID"].ToString());
if (obj["DeviceID"] != null) Console.WriteLine("DeviceID:\t" + obj["PNPDeviceID"].ToString());
(有关更多详细信息,请参阅ActiveX Experts)
【讨论】:
也许您可以选择我的回复为有帮助,并将其设置为“已回答”:D thx 提前 为什么投反对票?请让我知道你不喜欢什么?你认为有什么问题?以上是关于WMI:在插入时获取 USB 设备描述的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法保存 USB 设备,以便在重新插入后可以防止重新枚举?
如何在 Python 中侦听 Linux 中的“插入 USB 设备”事件?