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
  }
相关推荐
GISer_Jing几秒前
AI赋能前端:从核心概念到工程实践的全景学习指南
前端·javascript·aigc
|晴 天|1 分钟前
前端事件循环:宏任务与微任务的深度解析
前端
不爱吃糖的程序媛9 分钟前
Flutter-OH OAuth 鸿蒙平台适配详细技术文档
javascript·flutter·harmonyos
用户44455436542610 分钟前
Android开发中的封装思路指导
前端
前端OnTheRun16 分钟前
如何禁用项目中的ESLint配置?
javascript·vue.js·eslint
Felixwb66622 分钟前
Python 爬虫框架设计:类封装与工程化实践
前端
前端无涯22 分钟前
APP 内嵌 H5 复制功能实现:从现代 API 到兼容兜底方案
javascript
广州华水科技23 分钟前
潜力榜单2025年单北斗GNSS位移监测高口碑产品推荐
前端
xinyu_Jina25 分钟前
OpenNana 提示词图库:多模态数据检索、分面搜索与前端性能工程
前端
暴富的Tdy29 分钟前
【脚手架创建 Vue3 公共组件库】
前端·npm·npm发布