资讯专栏INFORMATION COLUMN

electron实现开机自启+通过链接调起应用

DevTTL / 1697人阅读

摘要:实现原理通过修改注册表来实现开机自启和通过链接调起应用类似百度网盘点击连接打开应用程序使用到的插件使用说明将下方例子中的替换为自己的应用别名可以不为名称开机自启开机自启动查看开机自启注册表是否已经注册未注册或注册地址与现地址不一致则进行注

实现原理

通过修改注册表来实现开机自启和通过链接调起应用(类似百度网盘点击连接打开应用程序)

使用到的插件

node-regedit yarn add regedit

使用说明

将下方例子中的electronApp替换为自己的应用别名(可以不为exe名称)

开机自启
const regedit = require("regedit");
const { app } = require("electron");
const path = require("path");

// 开机自启动
// 查看开机自启注册表是否已经注册electronApp
regedit.list("HKCUSoftwareMicrosoftWindowsCurrentVersionRun", (err, data) => {
  if (err) {
    console.log(err)
  }
  if (!data["HKCUSoftwareMicrosoftWindowsCurrentVersionRun"].values.electronApp || 
    data["HKCUSoftwareMicrosoftWindowsCurrentVersionRun"].values.electronApp !== 
    app.getPath("exe")) { // 未注册或注册地址与现地址不一致则 进行注册
    regedit.putValue({
      "HKCUSoftwareMicrosoftWindowsCurrentVersionRun": {
        "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({
      "HKLMSOFTWAREClasseselectronAPP": { // 设置注册表url调用electronApp
        "defaule": {
          value: "electronAPP", // 设置点击url的弹出框名字(表现不好)
          type: "REG_DEFAULT"
        },
        "URL Protocol": {
          value: "",
          type: "REG_SZ"
        },
        "path": {
          value: `${url}`,
          type: "REG_SZ"
        }
      },
      "HKLMSOFTWAREClasseselectronAPPshellopencommand": {
        "defaule": {
          value: `"${url}" "$1"`, // 需要唤起的应用程序路劲
          type: "REG_DEFAULT"
        }
      }
    }, (putErr) => {
      console.log(putErr)
    })
  }
  if (url) { // 判断启动url是否正确(用户重新安装,并将安装目录修改)
    regedit.list("HKLMSOFTWAREClasseselectronAPP", (listErr, docData) => {
      if (listErr) {
        regedit.createKey(["HKLMSOFTWAREClasseselectronAPPshellopencommand"], (createErr) => {
          if (!createErr) {
            setPath(url)
          }
        })
      } else {
        if (docData["HKLMSOFTWAREClasseselectronAPP"].values.path.value !== url) {
          setPath(url)
        }
      }
    })
  }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103583.html

相关文章

  • electron程序保护措施(崩溃监控,开机自启,托盘关闭)

    摘要:当设置了参数时,将作为命令行参数传递。托盘关闭向和微信一样,有的时候我们并不想让用户通过点关闭按钮的时候就关闭程序,而是把程序最小化到托盘,在托盘上做真正的退出操作。首先要监听窗口的关闭事件,阻止用户关闭操作的默认行为。 showImg(https://segmentfault.com/img/remote/1460000016933565?w=960&h=640); 在某种情况下,我...

    2i18ns 评论0 收藏0
  • electron + react + react-router + mobx + webpack 搭

    摘要:调试集成环境选择模块,简单分离开发,测试,线上环境。程序保护开机自启托盘最小化崩溃监控升级一行代码接入升级平台,实现客户端升级功能打包构建一个指令搞定打包项目地址 项目地址 : https://github.com/ConardLi/electron-react electron-react electron + react + react-router + mobx + webpac...

    pingan8787 评论0 收藏0
  • 如何配置 Aria2 来进行文件下载

    摘要:如何使用下载文件当你在或者上安装配置好时,你就可以通过其下载文件了。正文完参考文章下开机启动懒人安装教程的开机启动文件夹在哪及开机自动启动软件 什么是 Aria2? aria2 是一个轻量级的多协议和多源命令行下载实用程序。 它支持 HTTP / HTTPS,FTP,SFTP,BitTorrent 和 Metalink。 aria2 可以通过内置的 JSON-RPC 和 XML-RPC...

    ctriptech 评论0 收藏0
  • 如何配置 Aria2 来进行文件下载

    摘要:如何使用下载文件当你在或者上安装配置好时,你就可以通过其下载文件了。正文完参考文章下开机启动懒人安装教程的开机启动文件夹在哪及开机自动启动软件 什么是 Aria2? aria2 是一个轻量级的多协议和多源命令行下载实用程序。 它支持 HTTP / HTTPS,FTP,SFTP,BitTorrent 和 Metalink。 aria2 可以通过内置的 JSON-RPC 和 XML-RPC...

    SmallBoyO 评论0 收藏0

发表评论

0条评论

DevTTL

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<