C# 使用WMI ManagementEventWatcher侦听连接/断开的蓝牙设备

C# 使用WMI ManagementEventWatcher侦听连接/断开的蓝牙设备,c#,managementeventwatcher,C#,Managementeventwatcher,对WMI来说是个新手,我有点在黑暗中摸索 下面的代码检测连接和断开USB设备,但我还需要检测BT设备何时连接/断开(不仅仅是配对) 如果无法通过WMI实现,是否有其他方法可以实现(如果可能的话,希望避免使用32英尺的解决方案)。WMI是我的方法,我无法测试,但我会尝试此方法,因为我们检查错误,Macadiret可能会对您尝试实现的目标有所帮助“从Win32_pPentity中选择标题,其中ConfigManagerErrorCode=0,标题类似于“标准蓝牙串行链路(COM%”,PNPDevic

对WMI来说是个新手,我有点在黑暗中摸索

下面的代码检测连接和断开USB设备,但我还需要检测BT设备何时连接/断开(不仅仅是配对)


如果无法通过WMI实现,是否有其他方法可以实现(如果可能的话,希望避免使用32英尺的解决方案)。

WMI是我的方法,我无法测试,但我会尝试此方法,因为我们检查错误,Macadiret可能会对您尝试实现的目标有所帮助“从Win32_pPentity中选择标题,其中ConfigManagerErrorCode=0,标题类似于“标准蓝牙串行链路(COM%”,PNPDeviceID类似于“%&001653%””“中的答案适用于一些MOD。如果OP对USB驱动器感兴趣,您可能希望比较端口。为了检测到达,您必须在前后进行比较。在那里,代码使用Win32逻辑驱动器,但对于蓝牙,如果我将其改为比较
SerialPort.GetPortNames()中的列表
我可以看到BT设备来来去去去。我不确定您所说的BT设备是什么意思-通过BT连接的东西或适配器被插入?@PUROTIX我看不出这将如何工作,因为它从WMI调用与我上面的示例相同的事件,该示例未检测到BT配对设备的到达或取消/断开连接。@Wobbles您有什么问题吗连接/断开蓝牙设备的y解决方案?@Wobbles您有任何配对或删除蓝牙设备的解决方案(WqlEventQuery)吗?
ManagementEventWatcher watcher = new ManagementEventWatcher();
WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 OR EventType = 3");
watcher.EventArrived += new EventArrivedEventHandler(HardwareDeviceChange);
watcher.Query = query;
watcher.Start();