1

我使用 libvncclient 来构建一个查看器,在其中我尝试集成一个特定的热键,这些热键执行一些脚本,这些热键作为菜单选项完成,例如enable taskmanager窗口的“运行 cmd”和“打开终端”更新repos' 等。我需要检测操作系统信息,但我没有看到任何可以从 rfb proto 中获取此信息的信息

rfbClient *client = new client();

if(!ConnectToRFBServer(client,client->serverHost,client->serverPort))
      return FALSE;
    
if (!InitialiseRFBConnection(client))
     return FALSE;

我查看了rfbclient.hrfbClient 结构并没有保存任何存储此信息的回调/或字段,并且似乎没有 API。但是在 rfc 中有这个东西https://www.rfc-editor.org/rfc/rfc6143#section-7.3.2

服务器收到ClientInit消息后,发送ServerInit消息。这会告诉客户端服务器帧缓冲区的宽度和高度、像素格式以及与桌面关联的名称:

理查森和莱文信息 [第 11 页]

RFC 6143 远程帧缓冲协议 2011 年 3 月

  +--------------+--------------+------------------------------+
  | 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 没有处理这个问题,有没有办法可以获取这些信息?

4

0 回答 0