【问题标题】:Node Webkit - How to execute an exe file?Node Webkit - 如何执行 exe 文件?
【发布时间】:2013-08-12 09:42:15
【问题描述】:

我正在使用 Node Webkit 组件来包装我的 html5 应用程序。 在这个应用程序中,我需要运行 CMD 或其他 (exe) 文件,如“customApplication.exe”并传递一些参数。

我对这件事真的很绝望。如果你能在这方面帮助我,我会非常高兴。这非常重要,我不想更改我的组件并使用 Awesomium 或其他组件。

非常感谢您。

【问题讨论】:

标签: html node.js node-webkit


【解决方案1】:

我希望这个示例代码会有所帮助。 (取自我最近对 ​​node-webkit 的电子书介绍。) 您需要将变量“filePath”设置为“customApplication.exe”的完整路径

 var execFile = require 
    ('child_process').execFile, child;

 child = execFile(filePath,
       function(error,stdout,stderr) { 
    if (error) {
      console.log(error.stack); 
      console.log('Error code: '+ error.code); 
      console.log('Signal received: '+ 
             error.signal);
      } 
    console.log('Child Process stdout: '+ stdout);
    console.log('Child Process stderr: '+ stderr);
  }); 
  child.on('exit', function (code) { 
    console.log('Child process exited '+
        'with exit code '+ code);
  });

祝你好运,

乔纳森·多德

“使用 node-webkit 创建 Windows 桌面应用程序”

【讨论】:

  • 非常感谢。这就像一个魅力,但问题是当我想传递一个命令参数时这不起作用。我在下一个参数“execFile(filePath,args,callback)”中传递了我的参数,但这不起作用。所以我尝试了“exec”而不是“execFile”,并在文件名和命令参数之间放置了空格,效果非常好。如果你能告诉我如何正确地传递论点,我会选择你的答案作为最终答案。如您所知,我使用之前告诉您的解决方案解决了我的问题,但我希望在这里为其他人提供更准确的答案。
  • 很高兴您解决了问题。使用 execFile 参数作为字符串的数组列表传递,而 exec 将(作为第一个“命令”参数)使用空格分隔的参数运行命令。因此,您可以看到为什么带有间隔参数的 exec 有效,但 execFile 没有——它想要 [args] 。详细信息显示在 [link]nodejs.org/api/child_process.html 的 child_process 节点文档中
  • @Jonathan - 我在哪里可以买到你的书? =)
【解决方案2】:

我创建了一个名为UGUI 的项目,该项目旨在为使用 NW.js 的 CLI 应用程序创建 GUI。您可以借用我的“runcmd”或“runcmdAdvanced”函数来轻松完成此操作,或者只使用 ugui.js 库(这将使您的生活更轻松)。

简单的 peasy mac'n'cheesy。

UGUI 正在抽象出 Node.js 的做事方式以使其更简单,以获取有关 Node 在后台所做的更多信息:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-14
    • 2016-05-01
    • 2017-07-05
    • 2015-10-19
    • 2014-09-22
    • 1970-01-01
    • 2015-05-07
    • 2013-11-09
    相关资源
    最近更新 更多