以编程方式检查用户是否在桌面 - Linux

时间:2013-07-02 10:48:11

标签: linux size desktop

我正在制作一个需要在桌面模式下运行的程序。我怎样才能办理入住手续?而且,是否可以在C(显示器)中获得屏幕宽度和高度?

1 个答案:

答案 0 :(得分:3)

这是一个非常广泛的问题,但我会咬人。我假设“桌面模式”表示正在运行X window system。由于您似乎没有首选的小部件工具包,因此我将展示一个使用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进行编译。所有这一切以及更多内容都可以从the Xlib programming tutorial here中学到。