我正在制作一个需要在桌面模式下运行的程序。我如何签入C?而且,是否有可能在C(监视器)中获得屏幕宽度和高度?
问问题
54 次
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 回答