让chatgpt写一个脚本监控试图输入密码解锁我设备的人

1、上班的时候突然又一个想法,就是如果有人试图在我锁屏界面输入密码解锁我的设备,可不可以调用电脑的摄像头拍摄一张照片呢?
2、有了想法赶紧实现,就随便问了下chaggpt,他推荐了几个软件,后来我一想本来就是很简单的一个拍摄操作。然后我就让他写了一个脚本,他就给我写一个python脚本。
3、恰好我的电脑是有python环境的,试着运行了一下他的脚本,可以运行没有毛病。然后我就问他怎样可以实现我说的”输入错误密码就运行程序拍摄照片“,他说可以把这个脚本加入到计划任务里面,我用它的方法试了下无法在输入错误密码的时候运行程序。
4、脚本加入计划任务流程如下:
windows+R 运行 ”taskschd.msc“,弹出窗口左侧选择创建任务


触发器选项选择新建触发器,chat提供创建任务的方法和和事件id都有点问题,事件id是我自己找到的。

操作选项新建操作如下

然后保存就可以了,我锁屏之后解锁屏幕使用的是PIN码,我没有试过如果不是PIN码解锁,事件id是否需要变一下
5、脚本如下

import cv2
import time
from PIL import Image
from datetime import datetime

def take_snapshot():
    # 获取当前时间
    now = datetime.now()
    # 将时间格式化为字符串
    current_time = now.strftime("%Y%m%d%H%M%S")
    # 打开摄像头
    video_capture = cv2.VideoCapture(0)
    # 等待摄像头启动 这个等待摄像头启动2s可以去掉,不然太慢了
    time.sleep(2)
    # 捕获一帧图像
    ret, frame = video_capture.read()
    # 关闭摄像头
    video_capture.release()

    # 保存图像 chat给的脚本没有设置保存目录,我这块给图片名字加了时间戳和存放路径
    image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    img_pil = Image.fromarray(image)
    img_pil.save("C:/shoot/to/"+current_time+"snapshot.jpg")

if __name__ == "__main__":
    take_snapshot()

然后就可以尝试了输入错误pin码,来验证效果了
6、不要频繁错误输入pin码,我就被锁了两个小时,后来用微软账号登录才进入电脑。

2 个赞

代码可以直接用cv2.imwrite('img.png', img)保存图像,没必要转颜色然后再用pil
然后操作里面的程序也可以直接用python然后把脚本作为参数

Hi 要不要改一下你的 ID 啊

不要使用计划任务,只用ahk能做到同样的功能吗?

也可以调用系统system32文件夹里面的snippingtool.exe的参数让他默认截屏并保存的吧,应该更简洁一点

video_capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)

拍摄的代码加上这个参数可以更快拍摄,也不需要sleep

任务计划程序里面选择“不管是否登录都运行”的话,不知道有什么区别?我的理解是可以在开机第一次登录前也启动监控?

实测非常好用,感谢楼主和ChatGPT!

对 不需要 sleep。我试下加这个参数能不能加快。

不太了解 ahk 你可以试一下。

如果你是解锁屏幕用的PIN码就不需要改,如果不是你可以试一下,无法触发拍照,就需要改下。

对Python的版本有要求吗?楼主用的是哪个版本?我还是3.7.4呢~能不能用?

没有要求,只要有对应版本的opencv-python就行

应该没有要求吧,你可以先单独用python运行下脚本,看看能否拍摄。确定没问题再放到计划任务里面。