Electron 屏幕锁定 快捷键锁定 屏蔽快捷键

本文介绍了一个基于Electron、React的屏幕锁定应用,包括屏幕锁定、快捷键锁定(如Alt + Tab, Alt + F4)和开机自启动功能。应用使用c++实现底层钩子来屏蔽系统快捷键,并提供了开机启动的配置。已知问题涉及与其他软件的兼容性和Windows版本的适配。项目源码可在GitHub找到。" 111374232,10297056,JavaScript中parseInt地图解析之谜,"['前端开发', 'JavaScript', '解析', '数组方法', '函数']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


项目类似网吧的开机锁机应用。开机自动启动,锁定客户端键盘,锁定屏幕窗口,用户无法操作电脑,当输入正确的用户和密码,程序退出。 原项目为内网考勤使用,现在开源部分主要功能。
  • 窗口锁定主要实现方式:electron中window最上部,无边框,全屏,定时检查最小化等状态。
  • 键盘锁定采用c++ 使用windows底层钩子,屏蔽所有系统快捷键。
  • 开机启动使用electron自带自启模块。

屏幕锁定基于 Electron-react-boilerplate, 采用技术 Electron, React, React Router, WebpackReact Fast Refresh.


各位小伙伴如果觉得文章不错的话,欢迎star :https://github.com/Mad-hu/ScreenLock

摘要

屏幕锁定应用包含功能:屏幕锁定、快捷键锁定、应用自启动

  • 屏幕锁定
  • 快捷键锁定
    • Alt + Tab
    • Alt + F4
    • Ctrl + Alt + delete
  • 应用自启动
功能MacOSWindows
屏幕锁定
快捷键锁定
应用自启动

安装

首先,克隆项目到本地并安装依赖:

git clone https://github.com/Mad-hu/ScreenLock.git
cd ScreenLock
yarn

文件结构

  • .erb: 项目配置
  • assets: 应用的icon等
  • screenlock-node: screenlock.node的c++项目,有需要的可以自己构建
  • src: 基础项目

启动

启动dev环境:

yarn start

打包正式环境

打包一个本地的app:

yarn package

开机启动,!很重要

在 package.json中找到electron builder的配置项目,添加下边的配置。其中requestedExecutionLevel最重要。

"win": {
      "requestedExecutionLevel": "highestAvailable", // is require
      "target": [
        {
          "target": "nsis"
        }
      ]
    }

如果你想要开机启动,并且能够屏蔽系统快捷键(Ctrl + Alt + delete) 的话,不仅要修改上边的配置,还要修改系统UAC的配置,单项配置不讲,这里提供reg脚本,直接用。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000000
"EnableLUA"=dword:00000000
"EnableUIADesktopToggle"=dword:00000000
"PromptOnSecureDesktop"=dword:00000000
"ValidateAdminCodeSignatures"=dword:00000000
"FilterAdministratorToken"=dword:00000000

系统兼容

Electron兼容的系统版本都OK

已知问题

屏幕锁定客户端已在生产环境安装至少5000台不同windows版本的机器,从windows7 base home-windows10 20H2,现抽离业务保留主要功能进行开源,也是希望大家能够提供更多的使用方法解决现有问题和完善应用。

  • 1、暂时没有实现mac上快捷键锁定。
  • 注意:以下问题在采用electron自带的启动方式不会出现。即在\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run位置添加启动项。在采用其他方式启动时会导致下面2-8的问题。
  • 2、windows与部分常驻内存应用冲突,导致无法关机,例如:某些软件破解程序。
  • 3、windows与其他启动方式冲突,导致无法开机,例如:部分杀毒软件会拦截。
  • 4、使用计划任务实现自启动,大部分会卡死系统。
  • 5、在注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run下添加启动,会导致1/500概率无法开关机,导致问题见2-3。
  • 6、在注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
    NT\CurrentVersion\Winlogon下Userinit、Shell键值也会有自启动的程序,会导致无法进入系统桌面。
  • 7、注册windows服务,无法启动。
  • 8、大部分无法开机,一部分是因为与某些应用产生冲突造成的,大部分是由于客户端启动后,锁定winlogon.exe造成的无法启动、关机、黑屏等问题。

参阅文章

各位小伙伴如果觉得文章不错的话,欢迎star :

https://github.com/Mad-hu/ScreenLock

项目支持github

Mad-hu

Demo演示

Demo

License

MIT ©

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值