你將如何從一個asp.net頁面啓動一個winform應用程序?如何從一個asp.net頁面啓動一個winform應用程序?
回答
出於安全原因,網絡和Silverlight和Flash不允許您直接與用戶文件系統的互動,這將使病毒編寫方式,以方便有什麼解決方案。
當然,你可以做任何你想使用ActiveX控件等,只要你的用戶接受控制。
這個網站提供了tutorial on launching an app for a client:
<SCRIPT Language="JScript">
function runcmd() {
File="cmd.exe";
WSH=new ActiveXObject("WScript.Shell");
WSH.run(File);
}
</SCRIPT>
<A href="#" onClick="runcmd(); return false;">Run CMD.exe</A>
注意,這隻能在IE瀏覽器,只有用戶授予其訪問後工作。
爲什麼你需要與桌面應用程序進行交互?也許有更好的方法來創建這種交互。
我需要它才能與用戶的Outlook本地安裝進行交互。具體來說,要將電子郵件保存到他們的草稿文件夾中。我曾嘗試通過WebDAV(直接與Exchange服務器交流)等,但發現它們並不完全滿足我的需求。 – Andrew 2009-11-12 01:41:02
我試過你的方法。當我在一個普通的html頁面上使用它時,它就起作用了。但是,當我在我的asp.net頁面中使用它時,會出現此錯誤:「自動化服務器無法創建對象。」任何想法這意味着什麼? – Andrew 2009-11-12 02:30:28
更新:我通過將IE的安全設置降低到「低」來解決了錯誤。 – Andrew 2009-11-12 02:37:32
如果你真的是WinForm的,像你的標籤,而不是網上表格,回答是,你不能只用ASP,因爲這將是一個顯著的安全問題做到這一點。您可能需要一個ActiveX控件或類似的東西。
對不起,是的,我的意思是Winforms。現在修正了標題。 – Andrew 2009-11-12 00:24:38
轉換要嵌入到更多的WinForm應用程序Web友好Silverlight。
感謝您的回答。但是,我需要能夠與用戶本地安裝的Outlook進行通信。通過Silverlight可以實現嗎? – Andrew 2009-11-12 00:20:59
正如它已經說過,我不認爲你可以做到這一點。您可以做的是在您的網站上發佈一個鏈接到您的應用程序(或其安裝包),並讓用戶下載並運行它。有明顯的問題,例如對於任何.net應用程序,您都需要.net運行時的正確版本才能安裝在用戶的機器上。
作爲一種替代你正在試圖做的,請,看一看在ClickOnce Deployment documentation MSDN上的東西;這可能是你正在試圖做的
如果您有能力預先安裝WinForm應用程序,請參閱Application Protocol registration。它由Mozilla描述得很好here。
這將使你在你的ASP.NET應用程序的線沿線的添加URL:
thing:SomethingThatThingUnderstands
下面是一個例子(從頁我掛)的URL鏈接,將打開的OneNote:
<html>
<head>
<title>Test of onenote: application protocol</title>
</head>
<body>
<p>Open the
<a href="onenote://C:\Program Files\Microsoft Office\Templates\1033\ONENOTE\12\Stationery\BLANK.ONE"> Notebook.</a></p>
</body>
</html>
優秀!我以前沒見過這個。 – 2009-11-12 00:42:54
僅'應用協議註冊'IE8? – 2009-11-12 00:53:51
沒有。 AFAIK,這是一個Windows的東西......而不是瀏覽器的東西。我已將鏈接更改爲更好的頁面。 – Larsenal 2009-11-12 00:58:21
- 1. 如何從另一個應用程序啓動一項活動?
- 2. 如何從兩個活動啓動一個Android應用程序
- 3. 如何從另一個程序啓動一個程序
- 4. Sitefinity在應用程序啓動之前創建一個頁面
- 5. 如何從另一個應用程序啓動移動應用程序?
- 6. 從另一個iphone應用程序啓動一個iphone應用程序?
- 7. 從WPF應用程序啓動WinForm
- 8. Nativescript - 從Nativescript應用程序啓動另一個應用程序
- 9. 從另一個Java應用程序啓動Java應用程序
- 10. 從另一個應用程序啓動Java應用程序
- 11. 從另一個rcp應用程序啓動rcp應用程序
- 12. 從另一個應用程序啓動應用程序
- 13. 啓動主頁選擇從一個應用程序
- 14. 一個asp.net應用程序中的多個登錄頁面
- 15. 如何從asp.net web應用程序啓動遠程windows桌面
- 16. 如何從另一個silverlight應用程序啓動silverlight應用程序
- 17. 如何調試從另一個應用程序啓動的應用程序? (VB6)
- 18. 如何從android中的另一個應用程序啓動應用程序?
- 19. 如何從另一個iPhone應用程序啓動MobileIron Web @ Work應用程序?
- 20. 如何從另一個應用程序啓動新的應用程序?
- 21. 如何從iPhone應用程序啓動另一個應用程序
- 22. 如何在Android上從另一個應用程序啓動一個應用程序的主要活動
- 23. 從第一個應用程序啓動第二個應用程序,然後關閉第一個應用程序
- 24. 如何從另一個Android應用程序啓動Android服務
- 25. 如何從一個Java應用程序啓動Microsoft邊緣
- 26. 如何在Mac上從Java啓動另一個應用程序
- 27. 如何從URI啓動另一個Win Phone 8應用程序?
- 28. 如何從Android的另一個應用程序啓動gtalk
- 29. 發佈一個VB.NET Winform應用程序
- 30. 檢測應用程序啓動和從另一個頁面返回
您是否想過類似於網頁如何奇蹟般地啓動iTunes? – Larsenal 2009-11-12 00:38:08
是的,我認爲是這樣的。雖然,winform應用程序是我自己開發的,可以與用戶本地安裝的Outlook進行交流。 – Andrew 2009-11-12 01:42:04
如果您不需要傳遞任何參數並且只需要打開一個應用程序,那麼我在下面描述的應用程序協議註冊可能會有點過分。但是如果你能處理安全的前提條件,它可能會起作用。 – Larsenal 2009-11-12 02:18:14