别再忘了锁屏,几行代码写一个人走屏锁小工具

写在前面

之前在公司,毕竟是干安全的,部门有这么一个要求,被发现不锁屏的,请全部门喝奶茶。很不幸,我也出现过忘了锁屏然后被发现的情况。自此之后,我就形成了肌肉记忆,同时也对别人不锁屏很敏感。

为什么要强调锁屏呢?你也不想你的电脑被别人操作吧,也不想自己的信息被别人获取吧。毕竟防人之心不可无。

自打跳槽到新公司之后,每次去厕所的路上就看到有人电脑不锁屏,真的是令我无比的纠结。锁个屏幕有那么难吗?确实很难,有时候一忙就容易忘,于是我就想实现一个离开电脑自动锁屏的程序。

分析

这玩意实现也不难,简单思考一下,就是让电脑检测人在不在电脑前面,那就是要试试捕获摄像头了,然后设置一个间隔时间,每隔一段时间截取图片,做人脸识别,没有人脸了就锁屏就行了。

涉及到摄像头图片处理,直接让人联想到opencv,然后再用python实现上面的一套逻辑,就搞定。

代码

安装opencv的库

bash 复制代码
pip install opencv-python

直接上代码:

python 复制代码
import cv2
import time
import os
import platform

# 检测操作系统
def detect_os():
    os_name = platform.system()
    if os_name == 'Windows':
        return 'windows'
    elif os_name == 'Darwin':
        return 'mac'
    else:
        return 'other'

# 执行锁屏命令
def lock_screen(os_type):
    if os_type == 'windows':
        os.system('rundll32.exe user32.dll, LockWorkStation')
    elif os_type == 'mac':
        os.system('/System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession -suspend')
    

# 初始化摄像头
cap = cv2.VideoCapture(0)

# 载入OpenCV的人脸检测模型
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 无人状态计时器
no_person_timer = 0
# 设定无人状态时间阈值
NO_PERSON_THRESHOLD = 3

# 检测操作系统类型
os_type = detect_os()

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 转换为灰度图像
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)

    if len(faces) == 0:
        no_person_timer += 1
    else:
        no_person_timer = 0

    # 如果超过阈值,则锁屏
    if no_person_timer > NO_PERSON_THRESHOLD:
        lock_screen(os_type)
        no_person_timer = 0

    time.sleep(1)

cap.release()

代码里都做好了注释,很简单,因为windows和macOS的锁屏指令不一样,所以做了个简单的系统平台判断。

可以完美执行,就是它得一直调用摄像头,应该也不会有人真的使用这玩意吧,hhh。

相关推荐
im_AMBER4 分钟前
python实践思路(草拟计划+方法)
开发语言·python
站大爷IP11 分钟前
Python与JSON:结构化数据的存储艺术
python
斯普信专业组22 分钟前
Zookeeper添加SASL安全认证 修复方案
安全·zookeeper·debian
大菠萝学姐37 分钟前
基于Spring Boot和Vue的高校图书馆座位预约系统的设计与实现
java·vue.js·spring boot·后端·python·mysql·vue
Tomorrow'sThinker1 小时前
[特殊字符] Python 批量生成词云:读取词频 Excel + 自定义背景 + Excel to.png 流程解析
python·excel
Qdgr_1 小时前
传统报警难题频现,安全运行隐患重重
大数据·人工智能·安全
无锡布里渊1 小时前
分布式光纤传感:为储能安全保驾护航
安全·温度监测·安全预警·分布式光纤测温·线性感温火灾监测·线型感温火灾探测器
黄焖鸡能干四碗1 小时前
系统安全设计方案,软件系统安全设计方案
开发语言·数据库·安全·vue·系统安全
制造数字化方案研究院1 小时前
54页|PPT|新型数字政府综合解决方案:“一网 一云 一中台 N应用”平台体系 及“安全+运营”服务体系
安全
野指针121382 小时前
【使用Flask基于PaddleOCR3.0开发一个接口 调用时报错RuntimeError: std::exception】
python·flask