System.Diagnostics程序集是Silverlight CLR框架的一部分,但它只包含与调试相关的类,Process类不可用。有没有其他方法可以从Silverlight应用程序启动外部进程?
答案 0 :(得分:9)
是的,您可以在Silverlight 4中(在具有提升的完全信任的浏览器外),例如:
dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
cmd.Run("calc.exe", 1, true);
答案 1 :(得分:2)
如果您在浏览器中运行应用程序或作为标准浏览器应用程序运行,则能够启动另一个进程会破坏Silverlight模型,允许您的应用程序访问浏览器沙箱外的计算机。
完全信任的应用程序将能够执行此操作。
你为什么要开始另一个过程?
答案 2 :(得分:2)
使用浏览器应用程序中的提升信任(我们应该简称ETOOB或OOBET)Silverlight 4应用程序如果是COM自动化服务器,您可以在新进程中启动新应用程序。例如: -
dynamic excel = ComAutomationFactory.CreateObject("Excel.Application");
应该在自己的procress中启动Excel。
答案 3 :(得分:2)
没有简短的答案,但有一个复杂的答案......
如果您运行SL4 Out-Of-Browser,并且您表示您可以正常运行(这实际上意味着SL不在IE保护模式下运行,而是作为标准应用程序运行......)有一种方法可以你通过使用WMI基本上做你想做的任何事情。这篇博客文章将为您提供帮助 - http://justinangel.net/CuttingEdgeSilverlight4ComFeatures。 请记住,这是高端的花式编码,所以请注意自己;)
Windows Phone上有two great sample chapters,LearningWindosPhone.com网站上有适用于Windows Phone的Silverlight。有很棒的Windows Phone Trainng material,不要忘记Windows Phone Develoeprs Blog
答案 4 :(得分:0)
如果您在ASPX页面中使用Silverlight,您可以使用HtmlDocument.Window.Invoke来调用JavaScript函数,该函数可以在页面中调用静态方法(使用WebMethod属性)
article here很好地描述了JS / ASPX桥。
善,
丹
注意:不确定我同意你想要做的事情;只是想帮助你做到这一点:)