由于一些原因,须要增强远程桌面协议,对如何增强,rdp推荐自写新扩展。新增扩展的扩展名叫“leagor”,使用和cliprdr一样的静态通道。目前要增加的功能主要有两个。
- 运行时改变朝向
- 拖拽复制
一、运行时改变朝向
在android,一些app启动时会强制使用一种朝向,像固定要竖屏,而这种朝向会和桌面正用的横屏不一致。另外,一些app运行中会改变朝向。
注:尝试过不增加扩展、在现有协议上把当前朝向发向client。1)发每一帧图像时发朝向字段。gfx发送图像用的是RDPGFX_WIRE_TO_SURFACE_PDU_1,在这当中把某个字段用作传朝向。像surfaceId,可如果这值在过程中发生变化,mstsc.exe就报错:“由于协议错误,会话连接将断开。请重新连接到远程计算机”。2)当朝向发生改时,发向client。因为有滞后,这种方法可能会导致client会有数帧图像使用了错误朝向,但朝向影响的是鼠标、触摸,一旦收到正确的朝向就能修正回来。已有的协议是否能支持发这个改变的朝向?像Monitor Layout PDU,一来并不是所有client都支持这个命令,mstsc.exe就可能不支持,二来它不是为传朝向用的。
当朝向发生改变时,leagor扩展使用Server Orientation Update PDU。在方向上,该pdu只会由server发向client,不须要有应答。