2012-09-10 62 views
0

我開發了一個Windows應用程序。該應用程序基本上是一個控制檯,幫助用戶啓動多個第三部分應用程序,例如MS word.exe,MSExcel.exe,Windows計算器等。該應用程序目前運行良好,因爲Windows應用程序。通常通過Process.Start()方法啓動應用程序。將Windows應用程序轉換爲基於網絡的

現在,我打算髮布我的應用程序的基於Web的版本。我的想法是,如果用戶可以通過網絡訪問我的應用程序,他/她可以運行MSword,Excel和通過我的應用程序可用的所有應用程序。

請親切指導我如何實現這一目標。 謝謝..!

+0

你的意思是像微軟的辦公室網絡應用程序(軟件即服務方案)? – Freeman

+2

您不能(輕鬆地)從網頁運行本地exe文件。我認爲最好的解決方案是通過ClickOnce在網絡上部署的Winforms應用程序。 –

+0

是的,它可以作爲一種服務的軟件,但我可以做到這一點? – Kashif

回答

1

Process.start()函數試圖在服務器上打開MS Word,而不是在客戶端上打開。如果服務器和客戶機位於同一臺計算機上,它將打開文件文件,即該文檔位於託管Web應用程序的同一臺計算機上。

在客戶端打開word.exe等情況下,您不能因瀏覽器安全限制。你可以做一件事給鏈接到一些word或excel文件,可以在客戶端下載,然後客戶端可以使用它。希望它有幫助

0

您可能正在尋找的東西已經在一些第三方解決方案中實現了。例如,請參閱Ericom AccessNow Demo。這是直接鏈接嘗試演示,而無需輸入您的電子郵件等。

免責聲明:我不以任何方式隸屬於Ericom。

0

這樣的事情在ASP.NET中並不容易。使用Process.Start()只需要在ASP.NET Web服務器上運行應用程序,而不是客戶端。由於瀏覽器的限制,其安全隱患是可以在客戶端執行應用程序的。

我建議的一個解決方案是使用SilverLight。使用Silverlight,可以使用下面的代碼在客戶端上運行的應用程序:

dynamic cmd = AutomationFactory.CreateObject("WScript.Shell"); 
cmd.Run("calc.exe", 1, true); 

注意您必須爲此代碼工作運行的Silverlight 4.0或更高版本。

相關問題