如何交互windows窗体应用程序到asp.net c# web?c#

本文关键字:asp net 应用程序 web 窗体 何交互 交互 windows | 更新日期: 2023-09-27 18:05:22

我正在C#中开发windows application。我有一个在ASP.NET C#中开发的网站,其中包含按钮desktop app,当用户click在此按钮上重定向到desktop app用户登录并从计算机上传视频到server。但我的问题是如何与asp.net c# web应用程序交互windows app。用户上传视频,然后在网页上显示通知。

如何交互windows窗体应用程序到asp.net c# web?c#

在我看来,这有多种方法。

  1. 你可以让用户下载EXE然后运行相同的
  2. 如果你知道EXE在用户机器上的位置,你可以使用JavaScript ActiveX对象来执行它
  3. 你可以在用户的计算机上注册一个URI方案,当用户点击链接时,链接(如myexe://exePathOrDescription)相应的shell命令将被执行,从而运行可执行文件(顺便说一句,这就是网页上的skype呼叫按钮和磁铁torrent链接的工作方式)

1。下载EXE并运行相同的这是最简单的方法,用户将点击<a href="/internalServer/unknownFile.exe">Do not run this file</a>这样的链接,然后他/她将被要求保存或运行文件。用户可以点击"运行",下载完成后,应用程序将由浏览器执行。

2。如果你知道文件的路径,你可以使用JavaScript

var activeX = new ActiveXObject("WScript.Shell");
activeX.Exec("C:''folder''executable.exe");

注意: ActiveXObject仅在IE上可用。对于其他浏览器,请参考对这个问题的回答

3。注册URI Scheme(顺便说一句,我最喜欢的)在这里,您可以创建一个实用程序应用程序,该应用程序需要下载并执行一次以注册URI方案,或者,您可以向应用程序添加代码,以便在应用程序第一次执行时注册URI方案。

然后你可以在你的网页上创建链接,以你的URI方案(如myExeScheme://pathToExecutable_URLEncodedWillBeBetter)开始。当URI方案在用户的机器上注册时,当用户单击上面的链接时,相应的Shell命令(在创建URI方案期间定义)将被执行,因此您的应用程序将被执行。

应用程序执行后,用户可以继续在应用程序上进行登录和其他任务。

要注册URI方案,请参考对这个SO问题的响应


第二部分:从桌面Windows上传图像

您可以创建一个web服务,您将推送图像/视频数据编码为Base64字符串,然后在接收后在服务器上解码。现在字符串可能非常大,所以您可能需要在一个请求中以块的形式上传数据,例如1KB的数据,在这样做时,您必须规划一个策略,关于如何维护上传的数据顺序。


第三部分:如何在网页上显示通知

你可以使用JavaScript/JQuery/AJax不断检查服务器上是否有新的文件被加载(你可以通过使用逻辑来限制请求的数量,比如请求只会在用户点击网页上的desktop app按钮后发送等)。加载新文件时,弹出通知消息

HTH .