Nó có vẻ như là một vấn đề đơn giản, nhưng tôi không thể tìm thấy câu trả lời: Làm thế nào để bạn truy vấn (thông qua X11) những gì màn hình tồn tại và độ phân giải của họ?Cách truy vấn độ phân giải màn hình X11?
Trả lời
Kiểm tra display macros và screen macros từ Xlib manual.
Cụ thể:
- Từ first link:
ScreenCount()
,ScreenOfDisplay()
- Từ second link:
WidthOfScreen()
,HeightOfScreen()
Nếu Xinerama đang được sử dụng, hãy thử XineramaQueryScreens
. Nếu không, bạn có thể giả định một màn hình duy nhất và sử dụng (X)WidthOfScreen
/(X)HeightOfScreen.
(Cũng xem câu trả lời khác. Đó là điều khiển từ xa có thể ai đó đang sử dụng mô hình X màn hình cũ, nơi màn hình của bạn là :x.0
, :x.1
, vv)
Đối với các máy chủ X hiện đại, cũng có phần mở rộng XRandR, cung cấp mô hình cập nhật thông tin bố cục đa màn hình mới nhất, bao gồm cả màn hình chồng chéo và thay đổi màn hình động.
Tài liệu về nó có sẵn trong XRandR 1.3.1 Protocol spec và libXrandr man page.
Điều này có thể hữu ích cho cli và kịch bản
xwininfo -root
Nhưng xrandr có thể chính xác hơn, đặc biệt là khi có nhiều môi trường màn hình:
xrandr
Nó dường như 'xrandr' so với 'xwininfo -root' không làm cho bạn biết về màn hình hiện đang hoạt động. Tuy nhiên nó cho bạn biết về màn hình bằng proxy của cửa sổ gốc đang hoạt động. – CMCDragonkai
sạch xrandr
đầu ra để sử dụng ImageMagick
xrandr |grep \* |awk '{print $1}'
Nó không liên quan đến X11? –
Thư viện X11 chỉ hoạt động với unix giống như hệ điều hành, do đó, nó không phải là một giải pháp đa nền tảng.
Một mã đầy đủ
#include <stdio.h>
#include <X11/Xlib.h>
int
main(const int argc, const char *argv[])
{
Display *display;
Screen *screen;
// open a display
display = XOpenDisplay(NULL);
// return the number of available screens
int count_screens = ScreenCount(display);
printf("Total count screens: %d\n", count_screens);
for (int i = 0; i < count_screens; ++i) {
screen = ScreenOfDisplay(display, i);
printf("\tScreen %d: %dX%d\n", i + 1, screen->width, screen->height);
}
// close the display
XCloseDisplay(display);
return 0;
}
Một biên soạn
gcc -o setup setup.c -std=c11 `pkg-config --cflags --libs x11`
Một kết quả (thực tế cho máy tính của tôi)
Total count screens: 1
Screen 1: 1366X768
Dựa trên:
Cảm ơn bạn đã cung cấp mã. Bạn có biết câu trả lời cho câu hỏi của tôi không: http://stackoverflow.com/questions/42987932/is-a-monitor-in-gtk3-the-same-as-a-screen-in-x11. Tôi hỏi nếu các màn hình bạn đang tìm thấy trong mã này là giống như những gì Gtk3 3.22 gọi màn hình. –
- 1. X11/GLX - Chế độ toàn màn hình?
- 2. Vấn đề về độ phân giải màn hình trong WPF?
- 3. Độ phân giải gốc của màn hình
- 4. Màn hình độ phân giải java đang
- 5. Cách nhận độ phân giải màn hình bằng C++?
- 6. Đặt hình nền theo độ phân giải màn hình
- 7. Corona SDK Cross Device Độ phân giải màn hình
- 8. Bộ công cụ Java Độ phân giải màn hình độ phân giải
- 9. X11 Cửa sổ toàn màn hình (OpenGL)
- 10. Thay đổi độ phân giải màn hình Java
- 11. Điều chỉnh độ phân giải màn hình jQuery
- 12. Lập trình Android - độ phân giải màn hình
- 13. Độ phân giải pixel màn hình theo mm
- 14. Truy vấn phương tiện cho độ phân giải tối thiểu của máy tính bảng và độ phân giải tối đa
- 15. Sử dụng Eclipse với Màn hình độ phân giải thấp
- 16. XNA - Nhận độ phân giải màn hình hiện tại
- 17. Độ phân giải màn hình iPhone là gì?
- 18. Tôi nên sử dụng độ phân giải màn hình nào?
- 19. Làm thế nào để có được độ phân giải màn hình màn hình từ hWnd?
- 20. QT nhận được độ phân giải màn hình mà không cần màn hình mở rộng
- 21. Màn hình hiển thị võng mạc, hình nền có độ phân giải cao
- 22. Thay đổi kích thước hình ảnh theo độ phân giải màn hình Android
- 23. Giá trị độ phân giải tốt để sử dụng với truy vấn phương tiện là gì?
- 24. Nhận độ phân giải màn hình gốc bằng cách sử dụng jQuery
- 25. cách đảm bảo trang web phù hợp với mọi độ phân giải màn hình?
- 26. Làm cách nào để chụp màn hình ở độ phân giải gấp đôi?
- 27. Cách lấy độ phân giải màn hình của trình duyệt trực tiếp
- 28. Mục tiêu C - cách lấy độ phân giải màn hình hiện tại?
- 29. Làm cách nào để có độ phân giải màn hình của người dùng trong ActionScript 3?
- 30. Cách tải biểu tượng App Store lên cho màn hình có độ phân giải cao?
+1 cho Xinerama – asveikau