HDMI连接不发送WM_DEVICE_ARRIVAL消息
HDMI Connection Does Not Send WM_DEVICE_ARRIVAL Message
我正试图检测我的电视何时通过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事件做出反应,并查看设备列表是否增加。
您可以轮询GetSystemMetrics(SM_CMONITORS)
或EnumDisplayMonitors
。
WM_SETTINGCHANGE
消息(通常)由改变系统指标的应用程序和服务发送,包括桌面分辨率(如果扩展桌面,则在插入HDMI时会发生变化,而不是镜像)。您可以使用它来触发上述轮询,而不是仅仅依赖于计时器。
相关文章:
- 将 aws-iot-device-sdk-cpp-v2 与 CMake 结合使用
- 加载安全区图像"A device attached to the system is not functioning"
- CMake + CUDA "invalid device function"即使使用正确的 SM 版本
- C++ API 中的张量流加载模型并得到"from device: CUDA_ERROR_OUT_OF_MEMORY"错误
- 文件打开时"QIODevice::write: device not open"
- 找不到'boost/iostreams/device/file_descriptor.hpp'文件错误
- Boost.Asio 在尝试加入多播组时引发'No such device'异常
- 尽管IP_MULTICAST_LOOP(Linux,C++,UDP),IP_ADD_MEMBERSHIP导致"No device found"
- 从连接的 USB 设备检索'Device Instance Path'
- 使用"cuFFT Device Callbacks"
- OpenNI: "Open failed: Device is in safe mode. Cannot start any stream!"
- 将 istream 中的字符回显到不寻常的"device"
- 当您泄漏"device"和"device context"时会发生什么 - 特别是 d3d?
- Exception_Access_Violation - external device-API - JNI
- 如何在 Boost::P rogram_Options 中支持命令行语法"-DEVICE:iphone"?
- targetSpeed, targetVelocity Arrival function
- "standard output stream"和"standard output device"有什么区别?