electron 啓動exe 程序

最近項目中,須要用 electron 來啓動後臺服務,後臺服務是一個 exe 程序,目錄在 electron 打包後的目錄上一層node

經過 app 來獲取程序的路徑app

import { app, BrowserWindow } from 'electron'
// 當前的可執行文件所在目錄
let appPath = app.getPath('exe')
// 獲取上一層的目錄 app 是當前目錄名稱 須要給去掉
let path = appPath.replace(/\\app\\studio.exe/, '')

再經過 nodechild_process 來調用 cmd 執行electron

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 生命週期中調用ui

app.on('ready', function(){
    runExec()
})
相關文章
相關標籤/搜索