Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
int main()
{
Display* display = XOpenDisplay(NULL);
if (!display) {
fprintf(stderr, "XOpenDisplay() fails\n");
return 1;
}
int xineramaScreenCount;
if (XineramaIsActive(display)) {
XineramaScreenInfo* xineramaScreenInfo =
XineramaQueryScreens(display, &xineramaScreenCount);
printf("Screen count: %d\n", xineramaScreenCount);
for (int i = 0; i < xineramaScreenCount; i++) {
printf("Screen #%d: (%d, %d) x (%d, %d)\n",
i, xineramaScreenInfo[i].x_org, xineramaScreenInfo[i].y_org,
xineramaScreenInfo[i].width, xineramaScreenInfo[i].height);
}
XFree(xineramaScreenInfo);
} else {
xineramaScreenCount = XScreenCount(display);
printf("Screen count: %d\n", xineramaScreenCount);
for (int i = 0; i < xineramaScreenCount; i++) {
Screen* screen = ScreenOfDisplay(display, i);
printf("Screen #%d: (0, 0) x (%d, %d)\n",
i, screen->width, screen->height);
}
}
return 0;
}
gcc -o x x.c -std=c99 -lX11 -lXinerama
if ((dc.StateFlags & DISPLAY_DEVICE_ACTIVE) && !(dc.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER))
int minitoCount = root->getDisplayMonitorCount();
StringVector videoModes = renderSystem->getConfigOptions()["Video Mode"].possibleValues;
for I := 0 to Screen.MonitorCount - 1 do
ShowMessage(IntToStr(Screen.Monitors[I].MonitorNum));
Как определить все мониторы и их разрешения