如何在 Process_System_DPI_Aware 中获得多显示器分辨率
How to get multi-monitor resolution in Process_System_DPI_Aware
我正在为 Firefox 制作插件。 Firefox 设置为 Process_System_DPI_Aware
。我有监视器的句柄,是否有可能得到正确的监视器?
到目前为止,我尝试过的所有方法都提供了主显示器的 DPI。
我想使用 LogicalToPhysicalPointForPerMonitorDPI
,因为它说它应该可以工作,但是我没有 window 来提供该功能。第二台显示器上没有 windows。我正在尝试截取该桌面的屏幕截图。
谢谢
您正在使用每个显示器的 dpi 设置,但您的进程不是每个显示器的 dpi 感知的。因此,您的辅助显示器具有 dpi 虚拟化。
您应该从每个监视器 dpi 感知进程执行屏幕截图代码。
您可以创建不可见 window,使用 EnumDisplayMonitors 枚举监视器,使用 GetMonitorInfo 获取虚拟化矩形,为每个监视器移动和调整不可见 window 全屏大小,并使用 LogicalToPhysicalPointForPerMonitorDPI 获取真实监视器矩形。
我正在为 Firefox 制作插件。 Firefox 设置为 Process_System_DPI_Aware
。我有监视器的句柄,是否有可能得到正确的监视器?
到目前为止,我尝试过的所有方法都提供了主显示器的 DPI。
我想使用 LogicalToPhysicalPointForPerMonitorDPI
,因为它说它应该可以工作,但是我没有 window 来提供该功能。第二台显示器上没有 windows。我正在尝试截取该桌面的屏幕截图。
谢谢
您正在使用每个显示器的 dpi 设置,但您的进程不是每个显示器的 dpi 感知的。因此,您的辅助显示器具有 dpi 虚拟化。
您应该从每个监视器 dpi 感知进程执行屏幕截图代码。
您可以创建不可见 window,使用 EnumDisplayMonitors 枚举监视器,使用 GetMonitorInfo 获取虚拟化矩形,为每个监视器移动和调整不可见 window 全屏大小,并使用 LogicalToPhysicalPointForPerMonitorDPI 获取真实监视器矩形。