通过修改注册表可以实现electron开机自启。
引入,rage-edit插件依赖,文档,可以自己查看;
封装函数:
const {Registry} = require('rage-edit')
const path = require('path')
const {app} = require('electron)
function setAppStart(cbSus,cbErr){
Registry.set(
'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run', //注册表开机启动应用路径
'my_application', //随意写
app.getPath('exe'), //当前应用路径,也是自动启动的应用路径
'REG_SZ', // 固定的
)
.then(()=>{
cbSus && cbSus()
})
.catch(()=>{
cbErr && cbErr()
})
}
module.exports = setAppStart
可以设置启动,必定也可以取消启动:
// 依赖相同,略...
function cancelAppStart(cbSus,cbErr){
Registry.has('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run','my_application')
.then((res)=>{
if(res){
Registry.delete('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run','my_application')
.then(()=>{
cbSus && cbSus()
})
.catch(()=>{
cbErr && cbErr()
})
}
})
.catch(()=>{
cbErr && cbErr()
})
}
由于,两函数存在共用变量,整合后得:
const {Registry} = require('rage-edit')
const path = require('path')
const {app} = require('electron)
module.exports = {
url:'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
name:'my_application',
//设置启动
setAppStart(cbSus,cbErr){
Registry.set(
this.url, //注册表开机启动应用路径
this.name, //随意写
app.getPath('exe'), //当前应用路径,也是自动启动的应用路径
'REG_SZ', // 固定的
)
.then(()=>{
cbSus && cbSus()
})
.catch(()=>{
cbErr && cbErr()
})
},
// 取消启动
cancelAppStart(cbSus,cbErr){
Registry.has(this.url,this.name)
.then((res)=>{
if(res){
Registry.delete(this.url,this.name)
.then(()=>{
cbSus && cbSus()
})
.catch(()=>{
cbErr && cbErr()
})
}
})
.catch(()=>{
cbErr && cbErr()
})
}
}