gpt4 book ai didi

c++ - MFC C++通过WM_DEVICECHANGE通知区分两个设备

转载 作者:行者123 更新时间:2023-12-02 10:05:15 25 4
gpt4 key购买 nike

我正在编写一个函数,以在Windows中使用C++ VS2019检测USB设备的添加/删除。移除设备或将其连接到PC时,WM_DEVICECHANGE会发出通知,但单个设备会发出多个通知。对于所有通知,返回的参数也相同。

问题是,当2个设备接一个连接或卸下时,通知数量增加,但参数保持不变。我如何区分通知来自不同的设备。

BEGIN_MESSAGE_MAP(CCheckDlg, CDialogEx)
ON_MESSAGE(WM_DEVICECHANGE, &CCheckDlg::OnMyDeviceChange)
END_MESSAGE_MAP()

功能:
    LRESULT CCheckDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam)
{
//When USB device connected or removed,
//The wParam is always equal to 7 and lParam is equal to 0.
}

或者,如果还有其他方法可以使用C++检测设备添加/删除,则可以建议。

谢谢。

最佳答案

WM_DEVICECHANGE消息的wParam包含触发此消息的特定事件。 7的值表示DBT_DEVNODES_CHANGED事件。

DBT_DEVNODES_CHANGED的文档说明:

There is no additional information about which device has been added to or removed from the system. Applications that require more information should register for device notification using the RegisterDeviceNotification function.

关于c++ - MFC C++通过WM_DEVICECHANGE通知区分两个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60521158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com