2010-05-06 130 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。

相关问题