将命令行参数传递给OOB Silverlight 4应用程序

将命令行参数传递给OOB Silverlight 4应用程序,silverlight,silverlight-4.0,out-of-browser,Silverlight,Silverlight 4.0,Out Of Browser,我需要通过现有的WinForms应用程序启动Silverlight 4 OOB应用程序(使用System.Diagnostics.Process执行sllauncher.exe)。我希望有某种方法可以让sllauncher.exe接受命令行参数并将其传递给OOB应用程序,但我想不出来。Silverlight没有提供API来访问命令行参数 这就是WPF(也许单击一次)是一个更好的选择 或考虑存储在Silverlight应用程序在启动时可访问的本地文件中需要传递的“数据”。 YAH可能在Silver

我需要通过现有的WinForms应用程序启动Silverlight 4 OOB应用程序(使用
System.Diagnostics.Process
执行
sllauncher.exe
)。我希望有某种方法可以让
sllauncher.exe
接受命令行参数并将其传递给OOB应用程序,但我想不出来。

Silverlight没有提供API来访问命令行参数

这就是WPF(也许单击一次)是一个更好的选择


或考虑存储在Silverlight应用程序在启动时可访问的本地文件中需要传递的“数据”。

YAH可能在Silverlight

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

您可以通过向
sllauncher.exe
/origin
参数传递URL来解决此问题,例如:

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

在Silverlight代码中,您可以通过访问
/origin
参数的值

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

不幸的是,由于URI是
文件://
URI,因此查询参数未存储在
Source.QueryString
中。然而,这也可能为“滥用”创造机会——我有限的经验是,如果传递给
/origin
的内容看起来有点像路径或URI,那么
sllauncher
将启动