javascript - 使用 WScript.shell activeX 在 javascript 中执行命令行

标签 javascript jquery shell unix

我正在尝试使用 shell 脚本执行命令行,以下面的代码为例

function callShellApp() {
    var objShell = new ActiveXObject("WScript.shell");
    objShell.run('"c:\menu.exe"');
}

根据我的要求,objShell.run 应该处于同步模式,除非发生这种情况,否则我应该允许用户导航屏幕。有没有办法可以做到这一点来维持这一点。

最佳答案

据我所知,使用 JS 不可能完全同步执行外部源,这里有一个“半同步”调用的代码片段:

objShell.Run('"c:\\menu.exe"', 1, true);
// JS after the line above is not executed until menu.exe has been terminated

注意也转义了反斜杠。虽然 JS 会等待,但页面本身是响应式的。为了防止页面和用户之间的交互,您可以执行以下操作:

top.addEventListener('focusin', function () {
    objShell.AppActivate(apptitle); // apptitle === the title of the window wherein `menu.exe` is running
});

不幸的是,即使这样也不会阻止定时函数的执行。

menu.exe 完成之前关闭页面时,这也会造成问题。请参阅例如this answer ,如果发生这种情况如何关闭您的应用程序。

关于javascript - 使用 WScript.shell activeX 在 javascript 中执行命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22378067/

相关文章:

javascript - 如何使用 jQuery 过滤表格行

javascript - 在另一个对象的方法中使用一个对象的方法时,如何获得所需的上下文?

shell - 将 grep 输出连接到 UNIX 中的 echo 语句

PHP Interactive - 从命令行加载文件

javascript - 如何使用 html-canvas 标签绘制视频?

javascript - 传递带有其他数据参数的序列化形式

javascript - 在 jquery 中循环(使用 .each() 方法)

jquery简单正则表达式搜索包含的子字符串

javascript - 将列表分成div以一次只显示一个

linux - 如何使用 Free Pascal 将 sudo\root 密码传递给 Linux 命令