electron实现开机自启+通过连接调起应用
实现原理
通过修改注册表来实现开机自启和通过连接调起应用(类似百度网盘点击连接打开应用程序)
使用到的插件
node-regedit yarn add regedit
使用说明
将下方例子中的electronApp替换为自己的应用别名(可以不为exe名称)
开机自启
const regedit = require('regedit'); const { app } = require('electron'); const path = require('path'); // 开机自启动 // 查看开机自启注册表是否已经注册electronApp regedit.list('HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run', (err, data) => { if (err) { console.log(err) } if (!data['HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'].values.electronApp || data['HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'].values.electronApp !== app.getPath('exe')) { // 未注册或注册地址与现地址不一致则 进行注册 regedit.putValue({ 'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run': { 'electronApp': { value: app.getPath('exe'), type: 'REG_SZ' } } }, (error) => { if (error) console.log(error) }) } });
通过连接调起应用
const regedit = require('regedit'); const { app } = require('electron'); /** * 下文中的`electronAPP`替换为自己需要的唤起名 * 使用时直接在html中使用<a href='electronAPP://'>唤起app</a> */ let url = app.getPath('exe'); // 获取可运行exe存放目录 function setPath (url) { regedit.putValue({ 'HKLM\\SOFTWARE\\Classes\\electronAPP': { // 设置注册表url调用electronApp 'defaule': { value: 'electronAPP', // 设置点击url的弹出框名字(表现不好) type: 'REG_DEFAULT' }, 'URL Protocol': { value: '', type: 'REG_SZ' }, 'path': { value: `${url}`, type: 'REG_SZ' } }, 'HKLM\\SOFTWARE\\Classes\\electronAPP\\shell\\open\\command': { 'defaule': { value: `"${url}" "$1"`, // 需要唤起的应用程序路劲 type: 'REG_DEFAULT' } } }, (putErr) => { console.log(putErr) }) } if (url) { // 判断启动url是否正确(用户重新安装,并将安装目录修改) regedit.list('HKLM\\SOFTWARE\\Classes\\electronAPP', (listErr, docData) => { if (listErr) { regedit.createKey(['HKLM\\SOFTWARE\\Classes\\electronAPP\\shell\\open\\command'], (createErr) => { if (!createErr) { setPath(url) } }) } else { if (docData['HKLM\\SOFTWARE\\Classes\\electronAPP'].values.path.value !== url) { setPath(url) } } }) }
相关推荐
游走的豚鼠君 2020-11-10
86417413 2020-11-25
83206733 2020-11-19
86276537 2020-11-19
83266337 2020-11-19
86256434 2020-11-17
zhouboxiao 2020-11-16
rise 2020-11-22
sssdssxss 2020-11-20
windle 2020-11-10
孙雪峰 2020-10-30
85477104 2020-11-17
xfcyhades 2020-11-20
liuxudong00 2020-11-19
cheidou 2020-11-19
gunhunti 2020-09-25
csdnYF 2020-11-15
达观数据 2020-11-11