QT只有在软件启动时会检测串口,运行中无法识别新增的串口,如何用setupAPI来监测串口插拔
时间: 2024-06-02 09:08:07 浏览: 194
串口检测软件能够监测串口数据
5星 · 资源好评率100%
你可以使用Windows的SetupAPI来监测串口的插拔,具体步骤如下:
1. 通过SetupDiGetClassDevs函数获取串口设备的设备信息集合句柄,需要指定设备类GUID为GUID_DEVINTERFACE_COMPORT。
2. 使用SetupDiEnumDeviceInfo函数遍历设备信息集合,获取所有的串口设备信息。
3. 针对每个串口设备信息,使用SetupDiGetDeviceRegistryProperty函数获取设备ID(即串口号)。
4. 使用SetupDiCreateDeviceInfoList函数创建一个设备信息集合句柄,需要指定设备类GUID为GUID_DEVINTERFACE_COMPORT。
5. 对于插入的串口设备,使用SetupDiOpenDeviceInfo函数打开设备信息集合,获取设备信息,然后使用SetupDiCreateDevice函数创建设备实例。
6. 对于拔出的串口设备,使用SetupDiRemoveDevice函数移除设备实例。
7. 释放设备信息集合句柄和设备实例句柄。
需要注意的是,使用SetupAPI需要管理员权限。另外,由于SetupAPI是基于Windows的消息机制实现的,因此需要在消息处理函数中处理插拔事件。
阅读全文