我有许多不支持缩放的全屏应用程序,我需要在单个显示器上显示。一些正在显示视频,所有都在显示经常更新的内容。一些应用程序在它们被最小化或被遮挡的情况下停止呈现。我们没有能力改变应用程序的行为。没有显示受保护的媒体,系统也不必支持受保护内容的播放。
期望场景:

我可以使用Indrect Display Driver Model创建虚拟显示设备并将帧渲染到我们的应用程序中的表面吗?我如何处理 OPM?有更好的方法吗?
考虑的替代方案:
- 自行移动和调整窗口大小
问题:在“缩略图”大小的视图中,我无法缩放窗口
- 通过 DWM Thumbnail API 渲染被遮挡的窗口
问题:某些窗口在被遮挡时无法呈现。
- 使用桌面镜像 API 来捕获程序
问题:我们没有办法创建“虚拟”显示
- 创建一个或多个 VM 并在其自己的桌面上运行每个程序。使用桌面共享 API或特定于管理程序的 API通过 RDP 将视频传输回主机
问题:许可、复杂性、视频卡顿
- 使用远程桌面服务创建多个会话
问题:许可、复杂性
- 使用带有“虚拟”连接器的多端口显示适配器,然后使用 DWM 或桌面镜像
问题:硬件成本、支持的固定分辨率、设置复杂性