Как получить имя устройства отображения в Linux - PullRequest
0 голосов
/ 01 февраля 2019

Я бы хотел найти аналоги linux для EnumDisplayDevices и EnumDisplaySettingsEx WinAPI.

Информация, которую мне нужно получить, это отображаемое имя и состояние (если оно активно или нет), ширина, высота, биты на пиксель и частота.Как я могу получить эту информацию, используя C (C ++)?Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Некоторые программисты чувак и ramrunner абсолютно правы.Для большинства систем Linux графический «рабочий стол» основан на X Windows.Инструменты командной строки для запроса вашего X-дисплея включают xrandr и xdpyinfo .Исходный код C-языка для обоих свободно доступен;Вы можете найти множество примеров программ с поиском в Google.

... ОДНАКО ...

X Windows - это "клиент / сервер".Ваш Linux "рабочий стол" должен не находиться на вашем физическом ПК;ваш «дисплей» X может так же легко быть рабочим столом Windows.В этом случае - xrandr и xdpyinfo по-прежнему применимы: они относятся к , где вы отображаете (например, клиент XMing в Windows), а не , на котором работает физический хост Linux.

Если вы захотите запросить графические устройства на своем физическом сервере ... тогда вместо этого вы будете использовать такие команды, как lshw -c display или get-edid

0 голосов
/ 01 февраля 2019

Как уже упоминалось в комментариях «Некоторые программисты, чувак», вам может понадобиться пройти через систему X Window.В частности, одним из вариантов будет протокол RandR.Вот спецификация протокола , а также исходный код команды xrandr , которая вызывает функции XRR и выводит большую часть необходимой вам информации на терминале.Ищите место, где заполняется

XRRScreenResources  *res

, а затем, как из него выбираются режимы с помощью функции find_mode ().

другие команды, которые могут помочь вам и не идтинад расширениями RandR могут быть xprop (1), xdpyinfo (1), xwininfo (1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...