Я использую libvncclient, чтобы создать средство просмотра, в котором я пытаюсь интегрировать определенные горячие клавиши, которые выполняют немного сценариев, которые выполняются как опции меню, такие как enable taskmanager
, «запустить cmd» для окна, «открыть терминал», «обновить репозитории» и т. д. Мне нужно обнаружить информацию об операционной системе, но я не вижу ничего, чтобы получить эту информацию в rfb proto
rfbClient *client = new client();
if(!ConnectToRFBServer(client,client->serverHost,client->serverPort))
return FALSE;
if (!InitialiseRFBConnection(client))
return FALSE;
Я посмотрел через rfbclient.h
и структура rfbClient не содержит никаких колбэков / или полей, в которых хранится эта информация, а также, по-видимому, нет никаких apis для этого. Но в RFC есть эта вещь https://tools.ietf.org/html/rfc6143#section-7.3.2
После получения сообщения ClientInit сервер отправляет ServerInit.
сообщение. Это говорит клиенту ширину и высоту сервера
кадровый буфер, его формат пикселей и имя, связанное с
рабочий стол:
Ричардсон & Левин Информационный [Страница 11]
RFC 6143 Протокол удаленного кадрового буфера, март 2011 г.
+--------------+--------------+------------------------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+------------------------------+
| 2 | U16 | framebuffer-width in pixels |
| 2 | U16 | framebuffer-height in pixels |
| 16 | PIXEL_FORMAT | server-pixel-format |
| 4 | U32 | name-length |
| name-length | U8 array | name-string |
+--------------+--------------+------------------------------+
Но кажется, что libvnc не справляется с этим, есть ли способ получить эту информацию?
Задача ещё не решена.
Других решений пока нет …