Windows解锁自动拍照神器:一键监控谁在用你的电脑!
本文介绍了一款Windows解锁自动拍照工具,可在电脑解锁时通过摄像头抓拍使用者照片并保存。该工具采用Python+OpenCV实现拍照功能,通过Windows任务计划监听解锁事件,适用于公司防偷用、家庭监控等场景。文章详细讲解了技术原理、完整代码实现(包括Python脚本、批处理文件和任务计划配置)以及一键部署教程。工具支持照片自动命名、日志记录。
·
Windows解锁自动拍照神器:一键监控谁在用你的电脑!
导言
最近写了一个超级实用的小工具——Windows解锁自动拍照系统!
核心功能:每次你解锁Windows电脑时,系统会自动调用摄像头抓拍一张照片,记录下解锁者的面部,存到指定目录。
适用场景:
- 公司电脑防偷用
- 家庭电脑防小孩偷偷玩
- 共享电脑使用记录
- 安全审计取证
一句话总结:谁解锁了你的电脑?照片告诉你!
技术实现原理
🎯 核心技术栈
| 技术 | 作用 |
|---|---|
| Python + OpenCV | 摄像头拍照 |
| Windows任务计划程序 | 监听解锁事件 |
| 批处理脚本 | 桥接调用 |
📋 完整工作流程
解锁Windows → 触发任务计划 → 执行批处理 → 调用Python脚本 → 摄像头拍照 → 保存带时间戳照片
完整代码实现
1. Python拍照核心脚本 camera_capture.py
#!/usr/bin/env python3
import cv2
import os
import datetime
import logging
# 配置日志(同时输出到文件和控制台)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler(r'E:\PyProjects\AutoFace\camera_capture.log'),
logging.StreamHandler()
]
)
def capture_photo(save_directory=r"E:\PyProjects\AutoFace\faces"):
"""一键拍照并保存"""
try:
os.makedirs(save_directory, exist_ok=True)
logging.info(f"📸 开始拍照,保存目录: {save_directory}")
# 打开摄像头
cap = cv2.VideoCapture(0)
if not cap.isOpened():
logging.error("❌ 无法打开摄像头")
return False
# 预热摄像头
import time
time.sleep(2)
# 抓拍照片
ret, frame = cap.read()
if ret:
# 生成文件名:UnauthorizedAccess_20241129_143022.jpg
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"UnauthorizedAccess_{timestamp}.jpg"
filepath = os.path.join(save_directory, filename)
cv2.imwrite(filepath, frame)
logging.info(f"✅ 照片保存成功: {filepath}")
cap.release()
return True
cap.release()
return False
except Exception as e:
logging.error(f"❌ 拍照失败: {str(e)}")
return False
if __name__ == "__main__":
import sys
save_dir = sys.argv[1] if len(sys.argv) > 1 else r"E:\PyProjects\AutoFace\faces"
capture_photo(save_dir)
2. 批处理启动脚本 unlock_capture.bat
@echo off
REM 🚀 Windows解锁自动拍照启动器
set SCRIPT_PATH=E:\PyProjects\AutoFace\camera_capture.py
set SAVE_DIR=E:\PyProjects\AutoFace\faces
set LOG_FILE=E:\PyProjects\AutoFace\unlock_log.txt
REM 确保目录存在
if not exist "%SAVE_DIR%" mkdir "%SAVE_DIR%"
REM 静默运行Python脚本
E:\PyProjects\AutoFace\.venv\Scripts\pythonw.exe "%SCRIPT_PATH%" "%SAVE_DIR%" >> "%LOG_FILE%" 2>&1
REM 记录解锁时间
echo 📸 解锁拍照: %date% %time% >> "%LOG_FILE%"
3. 任务计划程序配置 AutoFace.xml
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<!-- 🔥 关键:监听Session解锁事件 -->
<SessionStateChangeTrigger>
<Enabled>true</Enabled>
<StateChange>SessionUnlock</StateChange>
</SessionStateChangeTrigger>
</Triggers>
<Actions>
<Exec>
<Command>E:\PyProjects\AutoFace\unlock_capture.bat</Command>
</Exec>
</Actions>
<Settings>
<Enabled>true</Enabled>
<Hidden>true</Hidden> <!-- 隐秘运行 -->
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
</Settings>
</Task>
🚀 一键部署教程
步骤1:环境准备
# 创建项目目录
mkdir E:\PyProjects\AutoFace
cd E:\PyProjects\AutoFace
# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate
# 安装依赖
pip install opencv-python numpy
pip freeze > requirements.txt
步骤2:文件部署
E:\PyProjects\AutoFace\
├── camera_capture.py # 拍照脚本
├── unlock_capture.bat # 启动脚本
├── AutoFace.xml # 任务计划XML
├── faces/ # 照片保存目录
└── camera_capture.log # 日志文件
步骤3:导入任务计划
方法一:命令行导入(推荐)
# 以管理员身份运行CMD
schtasks /create /tn "AutoFace" /xml "E:\PyProjects\AutoFace\AutoFace.xml" /f
方法二:任务计划程序GUI
- 打开「任务计划程序」
- 右键「任务计划程序库」→「导入任务」
- 选择
AutoFace.xml文件
任务计划程序添加后效果


步骤4:测试
- 锁屏:
Win + L - 解锁:输入密码
- 检查:
E:\PyProjects\AutoFace\faces\目录下出现照片
📸 实际效果展示
解锁前1秒自动抓拍:
照片命名规则:
UnauthorizedAccess_20241129_143022.jpg
日志记录:
2024-11-29 14:30:22 - INFO - 📸 开始拍照
2024-11-29 14:30:24 - INFO - ✅ 照片保存成功: E:\PyProjects\AutoFace\faces\UnauthorizedAccess_20241129_143022.jpg
⚠️ 注意事项与优化
✅ 常见问题解决
| 问题 | 解决方案 |
|---|---|
| 摄像头打不开 | 检查设备管理器→影像设备 |
| 任务不触发 | 确保XML中的UserId与当前用户匹配 |
| 照片模糊 | 增加预热时间 time.sleep(3) |
🔧 高级功能扩展
- 人脸识别:集成
face_recognition库自动识别谁在解锁 - 照片上传:解锁后自动上传到云盘
- 邮件通知:陌生人解锁时发送告警邮件
- 多摄像头:支持外接USB摄像头
🎁 完整项目下载
GitCode:https://gitcode.com/weixin_44683jer/AutoFace
一键包:包含所有文件,直接修改路径即可使用
总结
这个工具部署5分钟,效果一生!
从此电脑使用情况一目了然,再也不用担心:
- ✅ 同事偷偷用你电脑
- ✅ 孩子半夜玩游戏
- ✅ 谁动了我的文件
有图有真相,谁用谁知道!
欢迎点赞收藏转发,你的一个赞就是对我开发热情的最大支持! 👏
有问题留言区咨询,我看到必回!
更多推荐
所有评论(0)