前言

由于工作中遇到需要启动其他应用,在这里简单记录一下。

正文

在本身应用启动后需要启动其他应用,我用的node的child-process()模块。
一般用spawn和exec来启动一个新的进程,下面用的exec,至于他们的区别,请看文档(感觉我还说不清的)。

首先引入exec()

const exec = require('child_process').exec

判断子进程是否开启,未开启则打开应用

let process = exec('tasklist|find /i "xxx.exe" || xxx', {cwd: 'F:\tools\xxx'}) // cwd 是应用的路径
process.error.on('data', data => {
  console.log(data)
})
process.stdout.on('data', data => {
  console.log(data)
})
process.stderr.on('data', data => {
  console.log(data)
})

exec()调用时会传入参数 (error, stdout, stderr)。 当成功时,则 error 会为 null。 当报错时,则 error 会是 Error 的实例。
传给回调的 stdout 和 stderr 参数会包含子进程的 stdout 和 stderr 输出。 默认情况下,Node.js 会将输出解码为 UTF-8 并将字符串传给回调。 encoding 选项可用于指定字符编码(用于解码 stdout 和 stderr 输出)。 如果 encoding 是 ‘buffer’ 或无法识别的字符编码,则传给回调的会是 Buffer 对象。

关闭进程

  exec('taskkill/F /Im "xxx.exe"')
Logo

前往低代码交流专区

更多推荐