2010-05-06 161 views
5

我需要通過現有的WinForms應用程序(使用System.Diagnostics.Process執行sllauncher.exe)啓動Silverlight 4 OOB應用程序。我希望有一些方法可以使sllauncher.exe接受並將命令行參數傳遞給OOB應用程序,但我無法弄清楚。將命令行參數傳遞給OOB Silverlight 4應用程序

回答

4

Silverlight沒有提供訪問命令行參數的API。

這是WPF(也許是點擊一次)將是一個更好的選擇。

或者考慮將需要傳遞的「數據」存儲在Silverlight應用程序啓動時可訪問的本地文件中。

0

嚴其可能在Silverlight

dynamic cmd=AutomationFactory.CreateObject("Shell.Application"); 
cmd.ShellExecute(@path_of_ur_exe,null,null,null,1); 
1

您可以解決此通過傳遞一個URL來sllauncher.exe/origin參數,例如:

sllauncher.exe /overwrite /emulate:c:\temp\Hello.xap /origin:c:\temp\Hello.xap?key=value

在您的Silverlight代碼,你可以通過

Application.Current.Host.Source.OriginalString 
// file:///C:/temp/Hello.xap%3Fkey=value 

訪問/origin參數的值(MSDN:http://msdn.microsoft.com/en-us/library/system.windows.interop.silverlighthost.source(v=vs.96).aspx

不幸的是,因爲URI是file:/// URI,查詢參數不存儲在Source.QueryString。然而,這也可能爲「濫用」創造機會 - 我有限的經驗是sllauncher將開始如果傳遞給/origin有點看起來像路徑或URI。

相關問題