从网页显示表单

时间:2009-05-29 18:50:54

标签: asp.net vb.net

我有一个问题,我试图以优雅的方式解决。我有一个我创建的.net应用程序。我试图从网页上显示其中一个表单。这听起来很奇怪,我承认,所以这是背景故事

我们有一些大型显示器在工作,显示有关它们的信息。我无法控制信息的显示方式。目前,他们只是在浏览器中使用浏览器和标签,以在屏幕上显示每条不同的信息。他们展示的大多数信息只是标准的html内容,文本和图像。

现在我的winforms应用程序出现了。我需要展示的应用程序部分是图形显示。如果这很重要,那么显示屏上的所有内容都是使用GDI +绘制的。我需要将此表单转换为我可以显示的格式。下面是我自己的解决方案,但我很确定这不是最好的方法,但它可能是我可以使用的唯一方法

创建一个控制台应用程序。该应用程序将执行以下操作 1.在服务器上作为服务运行 2.在内存中创建显示,并将其保存到位图中 3.将位图保存到网络上的某个位置。 4.有一个HTML文件链接可以在浏览器中显示的图像

我虽然对客户做了一些事情,但是客户并不总是在运行,所以我可能会有图像不会更新的时期。 我也在考虑一个ASP.net解决方案,但这需要我学习ASP.net,而我还没准备好接受这个挑战

3 个答案:

答案 0 :(得分:2)

在IE中,您可以将winforms app / control作为ActiveX控件托管,如下所示:

<object id="DateTimePicker" height="31" width="177" 
  classid="bin/Web.Controls.DateTime.dll#Web.Controls.DateTime.DateTimePicker" VIEWASTEXT>
</object>

有关详细信息,请参阅此文章:http://www.codeproject.com/KB/miscctrl/htmlwincontrol.aspx

现在,我并没有声称这比你的解决方案更优雅,但它是另一种选择。

我认为使用Asp.Net使用HttpHandler提供动态图像是最好的方法,但根据你的技能和时间,这可能不是一个选择。这是一个很好的教程:http://www.codeguru.com/columns/dotnet/article.php/c11013

答案 1 :(得分:0)

恕我直言建立这个的最佳方式是作为浏览器插件,就像Flash的工作方式一样。 Microsoft创建了一个名为SpicIE的插件框架,允许您为IE开发托管插件。这可能是你最好的选择。

旧的非托管方式是构建您的WinForms dll应用程序,然后将其打包在已签名的cab文件中,然后使用HTML对象标记引用该cab文件(codebase arg是您需要的)。

即,

document.write("<object CLASSID='clsid:DC187740-46A9-11D5-A815-00B0D0428C0C' CODEBASE='/MyFormsApp/MyFormsApp.cab#Version=1,00,0000' />");

用户第一次点击页面时,系统会要求他们允许安装程序加载其有效负载(dll)。一旦他们这样做,他们将通过浏览器窗口运行一个完全成熟的WinForms桌面APP。

答案 2 :(得分:0)

我采取了这个简单的路线。我创建了一个小的winform应用程序,它将GDI对象转换为位图,然后将位图保存到网络共享。此文件在显示在监视器上的简单HTML文件中进行重新声明。

我选择了winform应用程序,因为它让我很容易在任务管理器中设置它,并且每10分钟运行一次以进行更新。