我正在为Firefox制作插件。 Firefox设置为Process_System_DPI_Aware
。我有监视器的句柄,是否可以获得正确的监视器矩形?
到目前为止,我尝试的所有方法都给了我主监视器的DPI。
我想使用LogicalToPhysicalPointForPerMonitorDPI
,因为它说它应该可以工作但是我没有窗口来提供这个功能。第二台显示器上没有窗户。我正试图截取该桌面的截图。
由于
答案 0 :(得分:1)
您正在使用每个监视器的dpi设置,但您的进程不是每个监视器dpi感知。因此,您的辅助监视器具有dpi虚拟化功能。
您应该从每个监视器的dpi识别过程中执行屏幕截图代码。
答案 1 :(得分:1)
您可以创建不可见窗口,使用EnumDisplayMonitors枚举监视器,使用GetMonitorInfo获取虚拟化rects,为每个监视器移动和调整隐藏窗口全屏,并使用LogicalToPhysicalPointForPerMonitorDPI获得真正的监视器矩形。