C# 检测usb接入消息
时间: 2023-07-12 22:09:04 浏览: 56
在 C# 中,可以使用 System.Management 命名空间下的 ManagementEventWatcher 类来检测 USB 设备接入和拔出的消息。
以下是示例代码:
```
using System;
using System.Management;
namespace USBWatcher
{
class Program
{
static void Main(string[] args)
{
WqlEventQuery query = new WqlEventQuery("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_USBControllerDevice'");
ManagementEventWatcher watcher = new ManagementEventWatcher(query);
watcher.EventArrived += new EventArrivedEventHandler(USBEventArrived);
watcher.Start();
Console.WriteLine("USB Watcher started. Press any key to stop.");
Console.ReadKey();
watcher.Stop();
}
private static void USBEventArrived(object sender, EventArrivedEventArgs e)
{
string eventName = e.NewEvent.ClassPath.ClassName;
PropertyData entity = e.NewEvent.Properties["TargetInstance"];
if (entity != null && entity.Value != null)
{
ManagementBaseObject targetInstance = (ManagementBaseObject)entity.Value;
string deviceName = (string)targetInstance.Properties["Name"].Value;
Console.WriteLine("USB device {0} was {1}", deviceName, eventName);
}
}
}
}
```
该代码会监听 USB 设备接入和拔出事件,并打印出设备名称和事件类型。你可以根据需要对事件进行处理。