gpt4 book ai didi

c++ - RFB 协议(protocol)中的 PointerEvent 和 DesktopSize

转载 作者:行者123 更新时间:2023-11-28 03:54:40 25 4
gpt4 key购买 nike

我有一个问题,我实际上是在我的软件中重新编码 RFB 协议(protocol)以与 VNC 服务器通信,我想知道如何获得服务器桌面大小的大小。我已经在 serverInit 消息中测试了 framebuffer_width 但它不代表桌面的卷轴大小我不知道如何获取它?

我的第二个问题是向服务器发送 PointerEvent 消息。要移动鼠标,实际上在我的软件中我将鼠标的 x 和 y 设置为位置 {0, 0},当我将其发送到 VNC 服务器时它成功运行,但是当我将 5 添加到 x 位置时它没有'不移动 5 个像素,它移动的比我想要的大,我不明白为什么????你能帮我吗 ?

感谢您的回答!

最佳答案

听起来您的两个问题都可能是您客户端的缩放问题。

一些问题可能会帮助您回答自己的问题(因为如果您想要明确的答案,您确实需要发布更多信息):

  • 您如何确定桌面的实际大小不是 serverInit 消息中发送的宽度?也许您正在启动 VNC 服务器并假设它使用与服务器上当前桌面相同的大小,但实际上它以不同的默认大小启动。对于 *nix 系统上的 VNC 服务器,VNC 服务器通常作为独立于主桌面的桌面运行,并且大小不一定相同。
  • 您确定将 serverInit 宽度和 pointerEvent x 和 y 位置视为 16 位值吗?
  • 您(做广告和)在 ServerInit 之后获得 DesktopSize 伪编码吗?连接后服务器可能会更改帧缓冲区大小。
  • 您使用什么语言/框架/等来实现客户端。您确定渲染函数没有以某种方式缩放吗?

顺便说一句,我找到了 official RFB documentation有点缺乏,我认为这些链接更适合 RFB 引用:

关于c++ - RFB 协议(protocol)中的 PointerEvent 和 DesktopSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com