【问题标题】:WPF and DWM for redirecting output over the networkWPF 和 DWM 用于通过网络重定向输出
【发布时间】:2023-03-03 03:54:01
【问题描述】:

我正在编写一个大型 WPF 应用程序(与屏幕分辨率一样大),运行一些基本控件、基本视频播放等...

我一直在研究如何通过本地网络将 WPF 窗口广播/重定向到其他监视器。本质上,尝试在单独的监视器上实时显示 WPF 应用程序的选定区域。

我一直在阅读有关 DWM(我没有这方面的经验)的信息,并且缩略图 API 似乎是实现此目的的好方法。只需通过某种多播网络广播在网络上广播片段(例如 9、300x300 片段),客户端 PC 会监听并呈现...

这可以吗?怎么会做这样的事情?

编辑

我一直在阅读更多有关 DWM 的内容,似乎确实可以实现这一点,this 链接解释说:

您可以进行分布式渲染 3D 场景并让它运行 完全硬件加速 客户端机器的数量。这 架构允许 DWM 提供 对远程桌面的一流支持 场景

我只是不知道从哪里开始研究这种发展......有什么想法吗?

【问题讨论】:

    标签: wpf directx dwm


    【解决方案1】:

    您可以使用 DWM 缩略图 API 执行此操作吗?可能不会,缩略图 API 非常有限,无法让您访问实际图像。

    一般情况下可以这样做吗?是的,有很多程序可以通过网络传输屏幕截图(如远程桌面和 VNC)。

    但这是最好的方法吗?

    您需要一个程序来广播屏幕图像,并需要另一个程序来绘制它 - 那么为什么不广播底层数据并在客户端进行可视化呢?

    【讨论】:

    • 某种带有本地渲染的数据传输(例如 WCF)听起来是解决问题的好方法。基本上,每台单独的屏幕 PC 都将充当与主机交互的客户端,这为您提供了额外的灵活性,例如最终将简单的侧显示器变成触摸面板以进行额外控制。
    • 不需要任何交互,但是会有非常多的客户端屏幕...我需要它能够流畅地执行,并且灵活。所以我只是在考虑一个客户端/服务器模型,其中服务器广播网络的整个帧缓冲区(也许 VNC 或 RDP 可以正常工作),然后客户端只呈现该视觉的某个片段。它更像是一个庞大的多显示器阵列设置,所​​以我真的不知道如何仅广播基础数据
    • 另外,“缩略图 API 非常有限,无法访问实际图像”是什么意思?它使您可以访问什么?
    • @Mark - 阅读about the thumbnail API on MSDN - 您在目标窗口上设置了源窗口和目标矩形,并且缩略图刚刚发生,您的代码不会触及实际的帧(可能有一种获取帧的方法,因为一些任务切换器显然使用它,但我没有在任何地方看到它记录)
    • @Mark - 另外,作为经常使用远程桌面的人,我不会用“流畅”或“灵活”来形容它。通过整个屏幕缓冲区发送是最占用带宽的通信方式,因为您的图形硬件速度很快,而网络速度很慢,您使用的带宽越少,过期时间就越好。
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多