在 C 中,如何使用 X11 获取屏幕内活动监视器的几何形状(x、y、宽度、高度)



我所有的搜索都指向有关如何使用 C 在 X11 中获取活动屏幕几何形状的答案,但该屏幕可能包含许多显示器,并且通常只有一个屏幕,除非有许多用户同时使用同一台计算机。

那些关于获取屏幕几何形状的答案已经过时了,因为它们没有考虑多个显示器。

那么,如何获取具有鼠标指针或活动窗口的显示器的几何形状(x,y,宽度,高度(?我想要相对于屏幕的几何形状。

你需要使用 RandR 扩展 API。获取xrandr实用程序的源代码并从那里窃取您需要的东西。您需要XRRGetMonitors函数和相关的数据结构。您还可以使用 xrandr 在命令行上获取所需的信息。

我不知道是否有活动监视器这样的东西,因为活动窗口可以跨越多个监视器,而指针仍然可以在另一个监视器中。无论如何,XRRMonitorInfo结构包含有关显示器几何形状的所有信息,包括其大小(以像素和毫米为单位(及其在逻辑屏幕上的位置,因此您可以从一对屏幕坐标中提取显示器描述。

另请参阅此答案。

最新更新