如何识别监视器的数量,位置或分辨率何时发生变化?

时间:2012-06-12 20:09:11

标签: delphi multiple-monitors windows-messages

我正在构建一些需要检测事物随监视器配置发生变化的东西。这包括添加/删除监视器,移动监视器位置(与主屏幕比较),或监视器分辨率已更改。最理想的方法是捕获一些Windows消息(如果有的话),这些消息在发生此类事件时触发。此信息将用于在任何给定时间保持监视器大小/位置的实时记录。例如,当显示器的分辨率增加时,我的应用程序将立即捕获它并进行自己的调整以适应更改。我如何捕捉这些事件?

我也试图避免使用VCL(例如Vcl.Forms.Screen.MonitorCount),这就是我喜欢捕获Windows消息的原因。

1 个答案:

答案 0 :(得分:11)

我能想到的最明显的信息是WM_DISPLAYCHANGE,至少在更改分辨率时会发送。