如何从WinJS打开一个.exe文件

4
我尝试从WinJS打开一个.exe应用程序,但是发生了错误,这是我的代码:
    var comando = "C:\\Program%20Files%20(x86)\\Windows%20Media%20Player\\wmplayer.exe";
    var oShell = new ActiveXObject("Shell.Application");
    //var commandtoRun = "C:\\Windows\\notepad.exe";
    oShell.ShellExecute(comando, "", "", "open", "1");

但是我遇到了一个错误...

JavaScript 运行时错误 0x800A01AD:自动化服务器无法创建对象

非常感谢您提供的任何帮助。

2个回答

2
很抱歉,无法在JavaScript Windows Store应用程序中使用ActiveX控件。Windows Store应用程序与系统隔离,并且不能运行来自应用程序容器外部的任意代码。这样做会太容易插入恶意软件。请注意保留HTML标记。

1
如果您知道特定的文件类型关联,就可以完成此操作。如果将文件打包到与目标应用程序关联的文件扩展名中,则可以告诉您的WinJS应用程序打开它,这将触发关联的应用程序打开文件。一些明显的扩展名被排除在外,如.exe,.msi等。

以下代码将尝试在与该扩展名相关联的任何应用程序中打开.txt文件:

var txtFile = "Assets\\myFile.txt";

Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(txtFile).then(
  function (file) {
      Windows.System.Launcher.launchFileAsync(file).then(
        function (success) {
            if (success) {
                // File launched
            } else {
                // File launch failed
            }
        });
  });

这不是完美的解决方案,因为您无法针对特定应用程序进行操作,只能触发用户与该文件类型关联的任何应用程序,但在某些情况下可能会很有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接