0

我正在制作一个需要在桌面模式下运行的程序。我如何签入C?而且,是否有可能在C(监视器)中获得屏幕宽度和高度?

4

1 回答 1

3

这是一个非常广泛的问题,但我会咬一口。我假设“桌面模式”是指正在运行的X 窗口系统。由于您似乎没有首选的小部件工具包,因此我将展示一个使用 Xlib 的示例。

您可以简单地尝试打开显示屏并检查返回值。如果它已启动,您还可以检索屏幕分辨率:

#include <stdio.h>
#include <X11/Xlib.h>

int main(int argc, char ** argv)
{
    int screen_num;
    unsigned int display_width, display_height;
    Display *display;

    /* First connect to the display server, as specified in the DISPLAY 
       environment variable. */
    display = XOpenDisplay(NULL);
    if (!display)
    {
        fprintf(stderr, "unable to connect to display");
        return 1;
    }

    /* pull useful data out of the display object */
    screen_num = DefaultScreen(display);

    /* Display size is a member of display structure */
    display_width = DisplayWidth(display, screen_num);
    display_height = DisplayHeight(display, screen_num);

    fprintf(stdout, "resolution is %d x %d\n", display_width, display_height);

    return 0;
}

你必须用-lX11. 所有这些以及更多可以从这里的 Xlib 编程教程中学到。

于 2013-07-02T11:26:39.990 回答