【问题标题】:view the GUI of a .net application on remote pc (no remote desktop or vnc etc.)在远程 PC 上查看 .net 应用程序的 GUI(无远程桌面或 vnc 等)
【发布时间】:2013-06-26 16:17:08
【问题描述】:

我阅读了几篇文章,但对 WCF(或远程处理或...)没有了解。

我编写了一个 .NET 4.0 WinForms 应用程序,该应用程序在用户进行输入的一台 PC 上运行。

我想在第二台 PC 上显示应用程序的 GUI。 第二台 PC 上没有输入,只是查看应用程序。

这怎么可能? (WCF 还是没有 WCF?) (无法使用远程桌面或 vnc 控制整个 PC)

非常感谢您的任何建议, 拉尔夫

【问题讨论】:

  • 您正在寻找桌面共享应用程序(其中一些可以配置为只共享一个应用程序,而不是整个桌面)。
  • 您可以截取应用程序的屏幕截图并通过 WCF 将其发送到另一台 PC 吗?这是我能想到的最简单(同时也是最丑陋)的解决方案。
  • @PoweredByOrange 这是一个非常幼稚的屏幕共享实现,而且它的扩展性并不好。您最终会发送 大量 冗余数据,因此通常无法获得良好的帧速率。有更复杂的算法基本上会发送增量更改,但最终您可能应该只使用现有产品而不是自己滚动。
  • @Servy 这就是为什么我说这可能是最丑陋的解决方案。但如果他真的想编写自己的应用程序而不是使用其他工具或 api,那将是一个起点。
  • 感谢您的回答

标签: c# winforms wcf user-interface remoting


【解决方案1】:

您可以让主应用程序公开 WCF 服务,并让第二个视图应用程序使用该服务来查看数据。

【讨论】:

  • 如果我理解正确的话,我可以使用 WCF 接收远程对象,我可以构建一个客户端来解析对象并可能显示它们的数据。 WCF 是否提供了一项功能,可以在浏览器(IE?)中显示我的应用程序的 GUI,而无需编写我自己的客户端?
  • 没有。如果您想在另一个系统上获得只读体验,则必须创建一个只读客户端。
【解决方案2】:

如果查看应用程序所在的屏幕区域是一个选项,我的库RemoteViewing 可能对你来说就足够了。

包含的示例服务器(它包括客户端和服务器 VNC)是只读的。

在示例服务器中,不是将 Screen 作为第二个参数传递给 VncScreenFramebufferSource 的构造函数(它将捕获整个屏幕),而是为包含应用程序的屏幕矩形提供回调。这应该就是你所需要的。

【讨论】:

    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多