electron项目开机自启动

一、效果展示:界面控制是否需要开机自启动

二、代码实现:

1、在渲染进程login.html中,画好界面,默认勾选;

html 复制代码
<div class="intro">开机自启动 <input type="checkbox" id="checkbox" checked/></div>

2、在渲染进程login.js中,获取用户操作并localStorage存储数据,保存用户的操作;

javascript 复制代码
 const checkbox = document.querySelector('#checkbox') 
 let isStartup = localStorage.getItem('isStartup') || '' //是否开机启动

3、在渲染进程login.js中,在登录成功后设置是否开机自启动;

javascript 复制代码
//在登录接口调用成功后操作
if (response.ok) {
    // do something
    // 设置开机自启动
    localStorage.setItem('isStartup', checkbox.checked ? 'yes' : 'no')
    // 给主进程发消息
    ipcRenderer.send('handle-checkbox', checkbox.checked)
  }

4、在主进程main.js中,收到登录后的消息,自动配置是否开机自启动;

javascript 复制代码
// 用户登录开机时是否自动启动
ipcMain.on('handle-checkbox', (event, isChecked) => {
  app.setLoginItemSettings({
    openAtLogin: isChecked,
    // 如果应用以管理员身份运行,设置此选项为true可避免UAC(用户账户控制)对话框在Windows上弹出。
    openAsHidden: false, // macOS特有的,当设置为true时,应用会隐藏式启动
  })
})

5、在渲染进程login.js中,重新登录时判断是否勾选开机自启动;

javascript 复制代码
 // 重新登陆时判断是否勾选开机自启动
  if (isStartup && isStartup == 'yes') {
    checkbox.checked = true
  } else {
    checkbox.checked = false
  }
相关推荐
雨季666几秒前
Flutter 三端应用实战:OpenHarmony 简易“动态内边距调节器”交互模式深度解析
javascript·flutter·ui·交互·dart
天人合一peng15 分钟前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
会飞的战斗鸡33 分钟前
JS中的链表(含leetcode例题)
javascript·leetcode·链表
方也_arkling1 小时前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
qq_177767371 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos
qq_177767371 小时前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
web打印社区1 小时前
web-print-pdf:突破浏览器限制,实现专业级Web静默打印
前端·javascript·vue.js·electron·html
RFCEO2 小时前
前端编程 课程十三、:CSS核心基础1:CSS选择器
前端·css·css基础选择器详细教程·css类选择器使用方法·css类选择器命名规范·css后代选择器·精准选中嵌套元素
烬头88212 小时前
React Native鸿蒙跨平台采用了函数式组件的形式,通过 props 接收分类数据,使用 TouchableOpacity实现了点击交互效果
javascript·react native·react.js·ecmascript·交互·harmonyos