2009-05-29 72 views
1

我有一個問題,我試圖以優雅的方式解決。我有一個我創建的.net應用程序。我正在嘗試從網頁上顯示其中一種表單。這聽起來很奇怪,我承認,所以這裏是背景故事從網頁顯示錶格

我們有一些大型顯示器在工作,顯示他們的信息。我無法控制信息的顯示方式。目前他們只是使用瀏覽器和瀏覽器在屏幕上顯示不同的信息。他們展示的大部分信息都只是標準的html內容,文本和圖片。

現在我來說說我的winforms應用程序。我需要顯示的應用程序的一部分是圖形顯示。如果重要的話,這個顯示器上的所有內容都使用GDI +繪製。我需要將此表單轉換爲我可以顯示的格式。下面是我自己的解決方案,但我很肯定這不是最好的方法,但它可能是我可以使用的唯一方法

創建控制檯應用程序。該應用程序將執行以下操作: 1.在服務器上作爲服務運行 2.在內存中創建顯示器,並將其保存爲位圖 3.將位圖保存到網絡上的某個位置。 4.有一個HTML文件,鏈接可以在瀏覽器中顯示的圖像

我雖然要做與客戶端的事情,但客戶端並不總是,所以我可以有圖像不會更新的時期。 我也在考慮一個ASP.net解決方案,但這需要我學習ASP.net,我還沒有準備好接受這個挑戰

+0

你是如何生成表單的圖像?屏幕截圖? – ichiban 2009-05-29 19:08:43

回答

0

我在這一條路上走了一條輕鬆的路線。我創建了一個小型的Winform應用程序,將GDI對象轉換爲位圖,然後將位圖保存到網絡共享中。該文件被重新顯示在顯示器上顯示的簡單HTML文件中。

我選擇了winform應用程序,因爲它使我很容易在任務管理器中進行設置,並且每10分鐘運行一次更新。

2

在IE中,您可以將一個winforms應用程序/控件託管爲一個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

0

恕我直言,最好的方式來構建這將是一個瀏覽器插件,就像Flash的工作方式。微軟已經創建了一個名爲SpicIE的插件框架,它允許您爲IE開發託管插件。這可能是你最好的選擇。

舊的非託管方式是構建您的WinForms DLL應用程序,然後將其打包在簽名的cab文件中,然後使用HTML對象標記(codebase arg是您需要的)引用該cab文件。

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

第一次用戶點擊,他們將被要求允許安裝程序來加載它的有效載荷(DLL的)的頁面。一旦完成,他們將擁有一個完整的WinForms桌面應用程序,通過瀏覽器窗口運行。