【问题标题】:Can you start an outside process with Silverlight?您可以使用 Silverlight 启动外部流程吗?
【发布时间】:2011-02-04 21:07:41
【问题描述】:

System.Diagnostics 程序集是 Silverlight CLR 框架的一部分,但它只包含与调试相关的类,Process 类不可用。有没有其他方法可以从 Silverlight 应用程序启动外部进程?

【问题讨论】:

    标签: silverlight process


    【解决方案1】:

    如果您在浏览器中或作为标准的浏览器外应用程序运行您的应用程序,则能够启动另一个进程将破坏 Silverlight 模型,允许您的应用程序访问浏览器沙箱之外的机器。

    完全信任的应用程序将能够做到这一点。

    为什么要启动另一个进程?

    【讨论】:

    • 如果您在浏览器之外运行应用程序并希望在客户端上启动某些内容,这可能很有用,但我想用户必须授予执行此类操作的权限。
    • @Crackerjack - 浏览器应用程序之外的应用程序仍然是沙盒(根据我的阅读),您可能可以使用 SL4 中的完全信任应用程序来执行此操作 - 但我没有研究过这方面还没有。
    • 例如,如果我需要对客户端流上记录的内容进行编码,然后再将其发送到服务器上。
    【解决方案2】:

    如果您在 ASPX 页面中使用 Silverlight,您可以使用 HtmlDocument.Window.Invoke 调用 JavaScript 函数,该函数又可以调用页面中的静态方法(使用 WebMethod 属性)

    article here 很好地描述了 JS/ASPX 桥。

    善良,

    注意:不确定我是否同意您的尝试;只是想帮助你做到这一点:)

    【讨论】:

      【解决方案3】:

      使用来自浏览器应用程序的提升信任(我们应该简称 ETOOB 或 OOBET)Silverlight 4 应用程序,如果它是 COM 自动化服务器,您可以在新进程中启动新应用程序。例如:-

      dynamic excel = ComAutomationFactory.CreateObject("Excel.Application"); 
      

      应该在自己的进程中启动 Excel。

      【讨论】:

        【解决方案4】:

        没有简短的答案,但有一个复杂的答案......

        如果您运行的是 SL4 Out-Of-Browser,并且您表示您可以运行 elivated(这实际上意味着 SL 不会在 IE 保护模式下运行,而是作为标准应用程序...),有一种方法可以你通过使用 WMI 基本上可以做任何你想做的事情。这篇博文将为您提供帮助 - http://justinangel.net/CuttingEdgeSilverlight4ComFeatures。 请记住,这是高端花哨的编码,所以请注意自己;)

        LearningWindosPhone.com 网站上有Windows Phone 上的two great sample chapters 和Windows Phone 上的Silverlight。有很棒的 Windows Phone Trainng material,别忘了Windows Phone Develoeprs Blog

        【讨论】:

          【解决方案5】:

          是的,您可以在 Silverlight 4 中(在提升完全信任的浏览器外)中,例如:

          dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
          cmd.Run("calc.exe", 1, true);
          

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-24
          • 2010-09-07
          • 1970-01-01
          相关资源
          最近更新 更多