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

写在前面

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

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

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

分析

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

涉及到摄像头图片处理,直接让人联想到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。

相关推荐
涵玥4 分钟前
python题目练习12-小玉家的电费//小玉在游泳//小鱼的航程
python·python每日一练·洛谷题目
计算机毕业编程指导师9 分钟前
基于深度学习的花卉图像分类识别系统(PyTorch + ResNet50 + Django)
pytorch·python·深度学习·分类·毕业设计·迁移学习·图像分类
2601_9628857237 分钟前
vnpy 用什么数据源?A 股历史行情接入与 BarData 映射
python
日日大王学编程38 分钟前
deerflow-memory-design-blog
python·langchain·开源
众智鸿图1 小时前
XR驱动管网数据智能体检!众智鸿图精彩亮相2026燃气运营与安全研讨会
大数据·安全·xr
GJGCY1 小时前
金融AI Agent安全如何评估?数据出站、身份映射、参数绑定与审计追踪机制
人工智能·经验分享·安全·ai·金融·自动化·智能体
砚底藏山河1 小时前
量化回测可复现流水线CI化
java·python·ci/cd·金融
磁场转动100万匹1 小时前
道路巡检系统检测案例:YOLOv5 + Flask + PyQt 全栈实现
python·yolo
具身AGI1 小时前
家用导航的安全,要看它离什么多近多快
人工智能·深度学习·安全
Bruce_Liuxiaowei1 小时前
前端校验登录态,等于没校验——一次应急广播终端高危漏洞的发现与报送
运维·前端·安全