2011-10-12 63 views
2

任務:使用Silverlight發送桌面相關應用程序

我有一個Windows可執行文件,例如,convertvideo.exe。它是用於特定視頻轉換的命令行工具。

我希望我的客戶能夠在任何機器上輕鬆使用它,無需安裝。用例應該是:客戶端轉到一個網頁,該網頁託管一個Silverlight應用程序。應用程序通知客戶按「將可執行文件放入臨時文件夾」按鈕。按下後,可執行程序將部署(下載,複製)到客戶端計算機上。然後silverlight應用程序要求用戶提供要轉換的文件列表以及結果文件的路徑。用戶按轉換,Silverlight應用程序運行(在客戶機上)convertvideo.exe與提供的參數進行轉換。

問:

這可能與文件系統的訪問權限,Silverlight應用程序已經在瀏覽器中?

回答

0

如果你想要一個瀏覽器中的Silverlight應用程序,這在Silverlight 4中是不可能的。它將可能在Silverlight 5瀏覽器中,但尚未發佈。

但是,這可以通過Silverlight 4中的瀏覽器外應用程序完成。請參閱「Building an Out-ofBrowser Application」,瞭解如何通過瀏覽器向用戶提供瀏覽器外應用程序的提示。 「安裝」過程只是一個UAC對話框,非常小巧。

當用完瀏覽器時,可以將.exe作爲資源打包並將其保存到磁盤上的已知位置(但請注意,雖然SL4不具有對磁盤的完全訪問權限,但僅適用於某些特定區域「我的文檔」或獨立存儲)。要運行.exe,您可以使用COM:

using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell")) 
{ 
    shell.Run(@"Path\To\Exe\convertvideo.exe arg1 arg2 etc..."); 
} 
+0

我想要一個瀏覽器內解決方案。關於SL5的具體內容是什麼讓我可以在瀏覽器中做到這一點?我應該通過什麼關鍵詞來了解SL5中的這一特定功能? –

+0

執行COM互操作(基本上允許執行上述示例中所述的任意代碼)的能力需要提升信任度,該信任僅適用於SL4中的OOB應用程序。在SL5中,提升的信任也可用於瀏覽器內應用程序。見http://xamlgeek.net/2011/04/20/silverlight-5-elevated-trust-in-browser/ –