我正在尝试从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");
但是我收到了错误......
0x800A01AD - JavaScript中的运行时错误:自动化服务器不能 创建对象
任何帮助我都会感激
答案 0 :(得分:2)
我担心这种方式无法在JavaScript Windows应用商店应用中使用ActiveX控件。 Windows应用商店应用程序与系统隔离,无法从应用程序容器外部运行任意代码。以这种方式插入恶意软件太容易了。
答案 1 :(得分: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
}
});
});
这不是一个完美的解决方案,因为您无法定位特定的应用程序,您只能触发用户与该文件类型相关联的任何应用程序,但它可能在某些情况下有用。