在C中,如何使用X11

时间:2017-03-24 16:55:13

标签: x11

我的所有搜索都会导致有关如何使用C获取X11中活动屏幕几何的答案,但该屏幕可能包含许多监视器,除非有许多用户同时使用同一台计算机,否则通常只有一个屏幕。

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

那么,如何获得具有鼠标指针或活动窗口的监视器的几何(x,y,宽度,高度)?我希望几何相对于屏幕。

1 个答案:

答案 0 :(得分:1)

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

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

另见this answer