热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

electron完成开机自启+经由过程链接调起运用

完成道理经由过程修正注册表来完成开机自启和经由过程链接调起运用(相似百度网盘点击衔接翻开运用程序)运用到的插件node-regedityarnaddregedit运用说明将下方例子

完成道理

经由过程修正注册表来完成开机自启和经由过程链接调起运用(相似百度网盘点击衔接翻开运用程序)

运用到的插件

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中运用唤起app
*/
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)
}
}
})
}

推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
author-avatar
meteors99191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有