在我们的 C# WPF 中,我们使用显示地图的第 3 方(非托管)库。
我们使用System.Windows.Interop.D3DImage类。
第 3 方库将 Direct3D 用于 IntPtr32 表面位置属性。
当我从另一台计算机打开远程桌面并尝试查看 WPF 客户端时,我们会看到地图。
一旦 WPF UI 客户端启动,我最小化 RDP 会话或关闭 RDP,我将得到异常:
Direct3D device is lost
根据我对视频流应用程序的经验,当窗口最小化时,它会停止渲染图像以节省带宽。
我猜 rdp 的行为是一样的吗?是否可配置?即使窗口最小化,我也希望继续流式传输。
我知道这里提到的 .RDP 文件中有其他设置。
directx 设置为:redirectdirectx:i:1
到目前为止的部分答案:
当RDP客户端应用程序连接到RDP服务时,显示窗口时是GUI模式,当它最小化时是GUI-LESS模式,并且Direct 3D Components真的丢失了。为了在最小化期间使它们保持活动状态,必须打开注册表项(RemoteDesktop_SuppressWhenMinimized)