我需要通过现有的 WinForms 应用程序(System.Diagnostics.Process
用于执行sllauncher.exe
)启动 Silverlight 4 OOB 应用程序。我希望有某种方法可以sllauncher.exe
接受并将命令行参数传递给 OOB 应用程序,但我无法弄清楚。
问问题
3113 次
3 回答
4
Silverlight 没有提供 API 来访问命令行参数。
这是 WPF(也许单击一次)将是更好的选择的地方。
或者考虑将需要传递的“数据”存储在 Silverlight 应用程序启动时可访问的本地文件中。
于 2010-05-09T20:41:48.707 回答
3
您可以通过将 URL 传递给sllauncher.exe
's/origin
参数来解决此问题,例如:
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: http: //msdn.microsoft.com/en-us/library/system.windows.interop.silverlighthost.source (v=vs.96).aspx )
不幸的是,因为 URI 是一个file:///
URI,所以查询参数没有存储在Source.QueryString
. 然而,这也可能为“滥用”创造机会——我有限的经验是,sllauncher
如果传递给的东西看起来/origin
有点像路径或 URI,就会开始。
于 2013-08-26T06:19:38.087 回答
0
是的,它在银光中是可能的
dynamic cmd=AutomationFactory.CreateObject("Shell.Application");
cmd.ShellExecute(@path_of_ur_exe,null,null,null,1);
于 2011-06-09T16:36:00.533 回答