轮询 ManagementObjectSearcher 搜索结果更改的替代方法

alternatives to polling for changes to a ManagementObjectSearcher search result

我正在使用 ManagementObjectSearcher 检测蓝牙设备的可用性:

ManagementObjectSearcher("select Name from Win32_PnPEntity WHERE Name = 'Microsoft Bluetooth LE Enumerator'")

我想知道在应用程序运行时是否添加或删除了此类设备。有没有办法在不轮询查询的情况下做到这一点?

您可以创建一个 ManagementEventWatcher 并设置一个方法来处理发生的事件。它在这个 Whosebug post

中有描述

Using WMI to identify which device caused a Win32_DeviceChangeEvent