从网站远程启动桌面应用程序

时间:2011-11-23 19:30:37

标签: c# php desktop

我正在寻找创建一个(很可能是php)Web服务器,用户可以通过互联网登录并发送消息到C#应用程序,该应用程序在其家用电脑上的用户任务栏中运行并显示消息。 / p>

LogMeIn和Dropbox似乎都在没有任何所需信息的情况下将数据“推送”到用户的电脑上(没有桌面端的静态IP地址)所以它必须是可能的,但我不确定如何。

非常感谢任何帮助,谢谢!

4 个答案:

答案 0 :(得分:2)

启动示例LogMeIn后,它将打开一个端口并将其IP发送到LogMeIn服务器。他会每隔X分钟/小时做一次。 如果LogMeIn服务器有客户端请求,它将在特定端口上向您的IP发送请求。

我想

也可以从客户端PC轮询整个时间,将数据包发送到服务器,如果服务器有东西,则返回特殊数据包。否则只是服务器收到它的简单回复。

答案 1 :(得分:1)

我这样做的方法是让C#桌面应用程序充当服务器并监听套接字连接。然后,PHP应用程序可以连接请求,发送所需数据,然后关闭连接。

连接到另一台计算机的唯一方法是使用某种地址。这些服务可能具有当前用户IP的中央数据库。在您的情况下,您的C#应用​​程序将知道它所在的计算机的“用户名”,并且每次启动时它都可以使用当前外部IP更新数据库中的字段。然后PHP脚本可以获取它以进行连接。

答案 2 :(得分:1)

  1. 客户端应用程序在打开时使用其IP地址更新集中式数据库。最好的方法可能是在客户端应用程序获得Internet连接时更新挂钩上的值(就像IP将更改时一样)。
  2. 客户端应用程序公开服务端点(WCF / SOAP很容易),执行某些工作(例如显示消息框)
  3. 您的服务器将SOAP消息发送到客户端应用程序。 SOAP本质上是XML,所以你可以让PHP很容易地做到这一点。
  4. 您如何执行客户端/服务器通信取决于您。 WCF / SOAP只是一种方法,但它非常简单。您可能希望使用某种服务端点框架来避免自己编写所有管道(无需重新发明轮子)。 WCF服务也可以在没有安装IIS的情况下运行。

答案 3 :(得分:0)

你有多远得到这个。我试图做同样的事情。

我的想法是我会拥有C#App \ Service,它将继续对我的桌面进行连续的屏幕截图,并继续将它们发送到我所拥有的网络服务器,登录身份验证后在网络服务器上,网络登录不是桌面,我将在网页上显示流媒体桌面,并将继续发送鼠标位置和点击&右键单击数据库,我的C#App \ Service将继续监控,并将解释这些鼠标移动和点击,并通过输入HOOK或其他东西在我的台式PC上播放它们\ PERFORM,

然后我可以从任何地方打开我的网页,我将有一个WEB BASE REMOTE DESKTOP连接。

到目前为止,我已到达http://moon.pk/sad/

我将捕获的屏幕截图发送到我的网络服务器的MySQL数据库,这需要超过一分钟的时间进行传输,因此帧速率将为0.75 fps。这远远超出了BAD。