是否有可能检查显示器(显示器)是否正常工作并将该数据导入代码?我假设有一些命令行技巧或设备可以“泄漏”有关它的信息。使用Linux。
答案 0 :(得分:0)
您可以使用X11扩展程序XRandR
( X分辨率和旋转等)。
您可以使用命令xrandr
查看输出显示的状态。以我的电脑为例,你得到:
$ xrandr | grep connected
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
....
当然,输出的名称是特定于设备的。
如果您想从C程序访问数据,Xrandr
扩展名很容易编程。此示例代码将打印所有输出的连接状态(省略错误检查):
#include <X11/Xlib.h>
#include <X11/extensions/Xrandr.h>
#include <stdio.h>
int main()
{
Display *dsp = XOpenDisplay(NULL);
Window root = XRootWindow(dsp, 0);
XRRScreenResources *sres = XRRGetScreenResources(dsp, root);
printf("N outputs %d\n", sres->noutput);
for (int i = 0; i < sres->noutput; ++i)
{
XRROutputInfo *info = XRRGetOutputInfo(dsp, sres, sres->outputs[i]);
printf(" %d: '%s' %s\n", i, info->name, info->connection == RR_Connected ? "connected" : "");
XRRFreeOutputInfo(info);
}
XRRFreeScreenResources(sres);
XCloseDisplay(dsp);
return 0;
}
如果您想获得更改的实时通知,可以使用XRROutputChangeNotifyEvent
X事件,但这会更复杂:您需要一个事件循环或使用一个小部件工具包并挂钩X事件处理程序......