electron 启动exe 程序

2020-08-05T07:17:03
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

最近项目中,需要用 electron 来启动后台服务,后台服务是一个 exe 程序,目录在 electron 打包后的目录上一层

通过 app 来获取程序的路径

import { app, BrowserWindow } from 'electron'
// 当前的可执行文件所在目录
let appPath = app.getPath('exe')
// 获取上一层的目录 app 是当前目录名称 需要给去掉
let path = appPath.replace(/\\app\\studio.exe/, '')

再通过 nodechild_process 来调用 cmd 执行

const exec = require('child_process').exec
// 本地需要启动的后台服务名称
let cmdStr = 'server'
let cmdPath = path
let workerProcess

function runExec () {
  // 执行命令行,如果命令不需要路径,或就是项目根目录,则不需要cwd参数:
  workerProcess = exec(cmdStr, {cwd: cmdPath})
  // 不受child_process默认的缓冲区大小的使用方法,没参数也要写上{}:workerProcess = exec(cmdStr, {})

  // 打印正常的后台可执行程序输出
  workerProcess.stdout.on('data', function (data) {
    console.log('stdout: ' + data)
  })

  // 打印错误的后台可执行程序输出
  workerProcess.stderr.on('data', function (data) {
    console.log('stderr: ' + data)
  })

  // 退出之后的输出
  workerProcess.on('close', function (code) {
    console.log('out code:' + code)
  })
}

需要在 electronready 生命周期中调用

app.on('ready', function(){
    runExec()
})
扫一扫关注公众号添加购物返利助手,领红包
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。