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
  }
相关推荐
还是鼠鼠40 分钟前
图书管理系统 Axios 源码 __删除图书功能
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap
轻口味1 小时前
Vue.js `Suspense` 和异步组件加载
前端·javascript·vue.js
m0_zj2 小时前
8.[前端开发-CSS]Day08-图形-字体-字体图标-元素定位
前端·css
还是鼠鼠2 小时前
图书管理系统 Axios 源码__编辑图书
前端·javascript·vscode·ajax·前端框架
北极象2 小时前
vue3中el-input无法获得焦点的问题
前端·javascript·vue.js
百度网站快速收录3 小时前
网站快速收录:如何优化网站头部与底部信息?
前端·html·百度快速收录·网站快速收录
Loong_DQX3 小时前
【react+redux】 react使用redux相关内容
前端·react.js·前端框架
GISer_Jing3 小时前
react redux监测值的变化
前端·javascript·react.js
engchina3 小时前
CSS 样式化表格:从基础到高级技巧
前端·css
m0_528723813 小时前
react中useEffect的使用
前端·javascript·react.js