创作灵感:
最近使用electron开发应用时,有个需求是要唤起自带的小工具,是个exe,但这个exe直接双击打开时是需要管理员权限的,使用以下代码会报错,唤醒不了exe
const child = require('child_process')
const exePath = 'your exe path'
child.spawn(exePath)
原因是权限不足,使用以下方法可成功唤起:
方法一 使用child.exec,需要添加以下配置项
const child = require('child_process')
const path = 'your exe path'
const workerProcess = child.exec(path, { sudo: true, admin: true })
workerProcess.on('close', data => {
console.log(data)
})
workerProcess.on('error', data => {
console.log(data)
})
方法二 shell.openExternal
const shell = require('electron').shell
const path = 'your exe path'
shell.openExternal(path, { sudo: true, admin: true }).then(() => {
console.log('成功打开')
}).catch(() => {
console.log('打开失败')
})
方法三 在vue.config.js配置必须要以管理员权限启动,后续就不用单独写了
module.exports = {
pluginOptions: {
electronBuilder: {
builderOptions: {
win: {
target: 'nsis',
requestedExecutionLevel: 'requireAdministrator' // 请求管理员权限
},
}
}
}
};
const child = require('child_process')
const path = 'your exe path'
const workerProcess = child.exec(path)
workerProcess.on('close', data => {
console.log(data)
})
workerProcess.on('error', data => {
console.log(data)
})