【问题标题】:Pass command line arguments to OOB Silverlight 4 application将命令行参数传递给 OOB Silverlight 4 应用程序
【发布时间】:2011-02-16 07:35:09
【问题描述】:

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

【问题讨论】:

    标签: silverlight silverlight-4.0 out-of-browser


    【解决方案1】:

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

    这是 WPF(也许单击一次)是更好选择的地方。

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

    【讨论】:

      【解决方案2】:

      您可以通过将 URL 传递给 sllauncher.exe/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 中。然而,这也可能为“滥用”创造机会——我有限的经验是,如果传递给 /origin 的内容看起来像一个路径或 URI,sllauncher 就会启动。

      【讨论】:

        【解决方案3】:

        是的,在 Silverlight 中是可能的

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-01-01
          • 1970-01-01
          • 2010-11-13
          • 2010-09-30
          • 2010-10-04
          • 2020-12-13
          相关资源
          最近更新 更多