加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winapi – 检测在Windows 7下连接或删除的外部显示器

发布时间:2020-12-14 04:14:23 所属栏目:Windows 来源:网络整理
导读:每次从运行 Windows 7的笔记本电脑插入外接LCD监视器或拔下插头时,是否有某些事件或通知我可以接收或挂机? 笔记本电脑检测到这一点并将我的显示切换到外部屏幕并返回某些类型的调整大小或重新定位,但这是否由操作系统公开,以便应用程序可以提供处理程序,附
每次从运行 Windows 7的笔记本电脑插入外接LCD监视器或拔下插头时,是否有某些事件或通知我可以接收或挂机?

笔记本电脑检测到这一点并将我的显示切换到外部屏幕并返回某些类型的调整大小或重新定位,但这是否由操作系统公开,以便应用程序可以提供处理程序,附加脚本等?

如果没有,是否有我可以不时轮询的注册表设置或API?

(我更喜欢编程C Win32 API)

UPDATE

Mike的回答如下,WM_DEVICECHANGE让我到了RegisterDeviceNotification(),但到目前为止我正在努力实现它……

更新2

这个问题已被问过几次不同的措辞,但在我看来还没有完全回答:

> How to detect hot plugging of monitor in a win32 application?
> Getting an event on monitor hotplug for windows

根据 this article,Windows在显示分辨率更改时以及添加或删除显示时发送WM_DISPLAYCHANGE消息.

如果由于添加或删除监视器而需要对桌面大小更改做出反应,则可以在此消息的处理程序中执行此操作. LPARAM为您提供窗口所在显示的新分辨率.请注意,如果您使用除100%以外的任何其他内容进行系统DPI缩放并且您的程序不是DPI-aware,则此分辨率将被缩放.

或者,使用EnumDisplayMonitors函数获取每个连接的监视器的显示分辨率以及虚拟桌面中监视器的相对位置.无论DPI缩放如何,此功能都使用实际设备像素值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读