데스크톱 응용 프로그램에서는 때때로 모니터 해상도를 감지해야 합니다. 코드는 아래와 같이 표시됩니다.
Display *d;
Screen *s;
d = XOpenDisplay(":0");
if (NULL == d) {
g_print("XOpenDisplay failed\n");
return;
}
s = DefaultScreenOfDisplay(d);
if (NULL == s) {
g_print("DefaultScreenOfDisplay failed\n");
return;
}
g_print("Display size: %dx%d\n", s->width, s->height);
그러나 또 다른 요구 사항은 이 코드가 의존하는 lightdm 서비스와 X 서버도 종료해야 한다는 것입니다.
Xlib 지원 없이 해상도를 감지하는 다른 방법이 있습니까? 감사해요
답변1
X 서버가 없어도 EDID 정보를 직접 쿼리하여 (기본/최대) 모니터 해상도를 찾을 수 있습니다. 바라보다단일 모니터의 EDID를 얻는 방법은 무엇입니까?. 경험은 그래픽 카드와 드라이버에 따라 다를 수 있습니다.
답변2
명령을 시도해 볼 수 있습니다xrandr