当前位置:  开发笔记 > 编程语言 > 正文

如何在Node Webkit中运行外部exe?

如何解决《如何在NodeWebkit中运行外部exe?》经验,为你挑选了1个好方法。

我正在使用Node Webkit作为我的网络应用程序,我真的是使用node webkit的新手.我想在我的应用程序中运行我的exe,但我甚至无法使用'child_process'打开简单的记事本.我在网站上看到了一些例子,但我发现很难运行notepad.exe,请提前帮助并非常感谢.

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

child = execFile('C:\Windows\notepad.exe',
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);
});

此外,我试图使用meadco-neptune插件运行exe并添加插件我把代码放在package.json文件中,但它显示无法加载插件.我的package.json文件是这样的

 {
   "name": "sample",
   "version": "1.0.0",
   "description": "",
   "main": "index.html",
   "window": {
   "toolbar": false,
   "frame": false,
   "resizable": false,
   "show": true,

   "title": " example"
             },
   "webkit": {
   "plugin": true
             },
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
             },
    "author": "xyz",
    "license": "ISC"
 }

Vaviloff.. 6

在node.js中,有两种方法可以使用标准模块启动外部程序child_process:execspawn.

使用exec时,在外部程序退出时获取stdout和stderror信息.数据只返回node.js,正如Mi Ke Bu在评论中正确指出的那样.

但是如果你想以交互方式从外部程序接收数据(我怀疑你不打算发射notepad.exe),你应该使用另一种方法 - spawn.

考虑这个例子:

var spawn = require('child_process').spawn,
    child    = spawn('C:\\windows\\notepad.exe', ["C:/Windows/System32/Drivers/etc/hosts"]);

child.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

child.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

child.on('close', function (code) {
  console.log('child process exited with code ' + code);
});

此外,您需要在路径名中使用双向后斜杠:C:\\Windows\\notepad.exe否则您的路径将被评估为
C:windows notepad.exe (带行返回),这当然不存在.

或者您可以使用正斜杠,如示例中的命令行参数.



1> Vaviloff..:

在node.js中,有两种方法可以使用标准模块启动外部程序child_process:execspawn.

使用exec时,在外部程序退出时获取stdout和stderror信息.数据只返回node.js,正如Mi Ke Bu在评论中正确指出的那样.

但是如果你想以交互方式从外部程序接收数据(我怀疑你不打算发射notepad.exe),你应该使用另一种方法 - spawn.

考虑这个例子:

var spawn = require('child_process').spawn,
    child    = spawn('C:\\windows\\notepad.exe', ["C:/Windows/System32/Drivers/etc/hosts"]);

child.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

child.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

child.on('close', function (code) {
  console.log('child process exited with code ' + code);
});

此外,您需要在路径名中使用双向后斜杠:C:\\Windows\\notepad.exe否则您的路径将被评估为
C:windows notepad.exe (带行返回),这当然不存在.

或者您可以使用正斜杠,如示例中的命令行参数.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有