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
  }
相关推荐
#麻辣小龙虾#6 小时前
vue3基于leaflet.js实现地图编辑功能
javascript·ecmascript·leaflet.js
YHL6 小时前
🧊 CSS 3D 硬核解析:四个属性手写旋转立方体
前端·css·html
spmcor6 小时前
JavaScript 日期限制的“三个月陷阱”:从边界溢出到稳健实现
javascript
半个落月6 小时前
Ajax 异步编程全攻略:从 XHR 到 async/await
javascript
毛骗导演6 小时前
Tool Boundary:如何让大模型永远不知道也不会泄露用户敏感数据
前端·架构
零瓶水Herwt6 小时前
代替vue-currency-input使用原生货币符号
前端·vue.js
Moment7 小时前
从多人编辑到 Agent 写文档,Hocuspocus v4 正在改写协同系统 😍😍😍
前端·后端·面试
星环科技7 小时前
数据标准Agent ,让企业数据说同一种语言
java·开发语言·前端
橘子星7 小时前
深入理解 AJAX 中的 JSON 序列化与 JS 异步处理
前端·javascript·后端