从metro应用程序启动Win Forms应用程序(使用java脚本和html)

时间:2016-05-06 05:06:27

标签: winforms windows-runtime winjs winrt-async

我想从metro风格的应用程序启动Win Form应用程序。我尝试了Launcher.LaunchFileAsync(IStorageFile) | launchFileAsync(IStorageFile) API 但文档称,当metro应用程序在沙盒环境中运行时,许多包含可执行代码的文件类型(例如.exe,.msi和.js文件)将被阻止启动。

我还尝试了Launcher.LaunchUriAsync(Uri, LauncherOptions) | launchUriAsync(Uri, LauncherOptions)方法,其中您需要传递URI和选项来启动应用程序。但是,应用程序无法使用file:///协议访问本地计算机上的文件。

有没有办法可以从我的metro风格应用程序创建并启动一个批处理(.bat)文件,以便它以某种方式执行其中的命令并启动带有一些选项的启动应用程序.exe文件? 任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

Metro / WinRT / UWP应用无法直接启动其他应用。它只能执行以下操作之一:

  1. 要求操作系统通过系统中注册的某些应用程序打开特定文件以获取此类文件扩展名。它不是关于.exe文件,而是在应用程序之间传递文档。例如。您可以在操作系统中注册WinForms应用程序以打开.xyz文件。然后使用LaunchFileAsync API从WinRT应用程序打开此类文件。系统将启动已注册的默认应用程序以打开此类文件。
  2. 要求操作系统通过系统中注册的某个应用程序对此特定协议做出反应。它不是关于file:/// protocol,而是关于启用app-to-app通信和委派操作的其他协议。例如。您可以在操作系统中注册WinForms应用程序以响应myapp-xyz:协议。然后,您可以使用LaunchUriAsync API来请求操作系统启动一些可以处理此类协议的应用程序。系统将启动已注册的默认应用程序以支持该协议。