【发布时间】:2013-02-08 16:14:02
【问题描述】:
我正在尝试检测我的电视何时通过 HDMI 电缆连接到我的笔记本电脑。我正在使用 WinAPI 函数RegisterDeviceNotification() 来处理设备消息。
当我将电视连接到笔记本电脑(通过 HDMI 电缆)时,我从未收到 WM_DEVICE_ARRIVAL 消息,只有 3 个 WM_DEVICE_CHANGE 事件。 这正常吗?
我真的需要 WM_DEVICE_ARRIVAL 事件,因为 lParam(或 wParam,我忘记了)包含一个结构,它告诉我连接的设备类型和设备名称,而 WM_DEVICE_CHANGE 事件不包含此结构。
如果在插入 HDMI 端口时没有收到 WM_DEVICE_ARRIVAL 消息是正常的,我可以使用其他什么方法来确定设备连接时的名称和类型?
我唯一的想法是:在应用程序启动时列出所有设备,在设备连接时对 WM_DEVICE_CHANGE 事件做出反应,看看设备列表是否增加了。
【问题讨论】:
-
连接 HDMI 链接后,设备管理器中是否列出了新的显示器?