吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8156|回复: 72
收起左侧

[原创工具] windows 半"智能“电源管理

[复制链接]
jingmoshell 发表于 2022-4-7 20:49
本帖最后由 jingmoshell 于 2022-4-10 21:21 编辑

Windows 半“智能”电源管理
(本软件会调用摄像头, 有摄像头使用需求,就用不了了 )
1.如题:先讲述一下制作原因(小作文)!
PC的电源管理设置就比较呆板,几个挡可选,但又不是刻意的在笔记本前使用,
有时离开电脑,屏幕却亮着,而有时人在电脑前,屏幕却黑了!(这就很令人烦恼)
所以最近突发奇想,制作了这个程序   / (当然也与本人的强迫症有关/ 哥几个就别杠了)
另外:什么U盘解锁,蓝牙设备解锁,人脸解锁,指纹解锁,....    咱们那另说!!!



update_01: 2022/04/10 更新说明:
> 1.优化部分逻辑,调节部分代码结构!
> 2.内置有代码参数说明,全为必填关键参数,请按说明加入
> 3.启动的bat文件,修改时请注意编码格式为 Ansi, 不然cmd窗口内容会乱码(应不同电脑设置而异)


"剧照"
2022-04-10_21-14-52.jpg 2022-04-10_21-02-48.jpg


* 新文件同步更新至 网盘 和 GitHub,请留意!
(新版本代码未在吾爱展示,请移步仓库查看




2.制作思路与目前实现(在代码中也有相关注释!)
# 人像检测
    ok
# 检测响应
# 1.设置超时!
     # demo 细化检测时间
        3-5 min 检测一次
        设置检测方式(存在于检测灵敏的优化,)
        人像检测的准确 /(合格性)

# 2.超时响应 (test)
    # 5 min 熄屏/ 锁屏   cmd 下输入 rundll32.exe user32.dll LockWorkStation,可以启动屏幕保护功能
    # 20 min 休眠       cmd  shutdown -h 这条指令让计算机休眠(未测试!)
    # ...True

3.代码展示!
3.1: -->    rec_face.py :  本文件是检测人脸,返回结果就是True/False
(对象乱写的,海涵! 函数名乱写的, 海涵!)
[Python] 纯文本查看 复制代码
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@author: jingmo
@file:   rec_face.py
@time:   2022/04/07 12:44:43
"""
import os
import time
import cv2


class Rec(object):
    def rec_main(self, lm, out_key, out_time):
        cap = cv2.VideoCapture(0)  # Open camera one
        success, frame = cap.read()  # Read one frame
        print("Camera open operation is: ", success)
        classfier = cv2.CascadeClassifier(r".\haarcascades\haarcascade_frontalface_alt.xml")
        
        # 计数检测
        count_number = 0
        time_start = time.time()
        while success:
            success, frame = cap.read()
            size = frame.shape[:2]  #
            image2 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  #
            cv2.equalizeHist(image2, image2)  #
            divisor = 8
            h, w = size
            minSize = ((int)(w / divisor), (int)(h / divisor))
            
            faceRects = classfier.detectMultiScale(image2, lm, 3, cv2.CASCADE_SCALE_IMAGE, minSize)  # Face detect
            if len(faceRects) > 0:  # If face array length > 0
                count_number += 1
                # print(f"已检测!!{count_number}")
            
            time_out = time.time()
            # 时间取整
            sleep_time = int(time_out - time_start)
            # print(sleep_time)
            
            if sleep_time >= out_time:
                return False
            if count_number >= out_key:
                return True


if __name__ == '__main__':
    rec = Rec().rec_main(lm=1.5, out_key=4, out_time=5)
    print(rec)
    print(type(rec))



3.2: -->    face_repson.py :  本文件是对检测人脸,返回结果的操作                       
( 函数名乱写的, 海涵!)
3.2.1 :文件中有一段实验代码:希望有能力的大哥可以实现!
(锁屏状态下,程序输入密码,已测试回车有反应!但无法键入密码!)
3.2.1 :各函数的参数已文字说明,有条件的,感兴趣的可以增删改,创建个性化的操作,当然执行文件也会提供,不过个功能已写死(体验与日常够用)
[Python] 纯文本查看 复制代码
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@author: jingmo
@file:   face_repson.py
@time:   2022/04/07 12:14:53
"""

"""
# 人像检测
    ok
# 检测响应
 # 1.设置超时!
     # demo 细化检测时间
        3-5 min 检测一次
        设置检测方式(存在于检测灵敏的优化,)
        / 人像检测的准确/(合格性)

 # 2.超时响应 (test)
    # 5 min 熄屏/ 锁屏   cmd 下输入 rundll32.exe user32.dll LockWorkStation,可以启动屏幕保护功能
    # 20 min 休眠       cmd  shutdown -h 这条指令让计算机休眠(未测试!)
    # ...
"""

from rec_face import Rec
import time
import os
import win32api


def post_config(sleep_min, sleep_sleep, sleep_hide, lm, out_key, out_time):
    # 暂停检测时间sleep_time(min)
    sleep_time = sleep_min * 60
    
    count_number = 0
    while True:
        # 灵敏度调节 lm人脸检测灵敏度, out_key人脸验证次数, out_time人脸检测超时(秒)
        key = Rec().rec_main(lm=lm, out_key=out_key, out_time=out_time)
        if key:
            # 重置检测计数
            count_number = 0
            print("已检测到用户!")
            
            # # 开始输入
            # # 关于锁屏
            # # 输入猜想(锁屏状态下,程序输入密码,已测试回车有反应!但无法键入密码!)
            # time.sleep(0.5)
            # # 回车
            # win32api.keybd_event(13, 0, 0, 0)
            # # 输入密码
            # time.sleep(1.5)
            # win32api.keybd_event(79, 0, 0, 0)
            # time.sleep(0.5)
            # win32api.keybd_event(80, 0, 0, 0)
            # time.sleep(0.5)
            # win32api.keybd_event(80, 0, 0, 0)
            # time.sleep(0.5)
            # win32api.keybd_event(79, 0, 0, 0)
            # # 回车
            # time.sleep(0.5)
            # win32api.keybd_event(13, 0, 0, 0)

        else:
            # 未检测计数,达到sleep_sleep 设定次数,执行睡眠
            # 未检测计数,达到sleep_hide 设定次数,执行休眠 / 否则锁屏
            count_number += 1
            print("检测计数:", count_number)
            if count_number >= sleep_sleep:
                print("执行睡眠")
                os.popen("psshutdown.exe -d -t 0")
                
            if count_number >= sleep_hide:
                print("执行休眠")
                # cmd的休眠指令:rundll32.exe powrProf.dll,SetSuspendState
                os.popen("rundll32.exe powrProf.dll,SetSuspendState")
            else:
                print("执行锁屏")
                # cmd的锁屏指令:rundll32.exe user32.dll LockWorkStation
                os.popen("rundll32.exe user32.dll LockWorkStation")
            
        for i in range(sleep_time, 0, -1):
            time.sleep(1)
            print(f"\r> 检测倒计时:{i} 秒!", end="")
        print("\n")


if __name__ == '__main__':
    # 设置一下命令窗的大小
    os.popen("mode con cols=50 lines=10")
    # sleep_min 循环检测次数,sleep_sleep 超时检测次数后睡眠,sleep_hide 超时检测次数后休眠
    # 灵敏度调节 lm人脸检测灵敏度, out_key人脸验证次数, out_time人脸检测超时(秒)
    post_config(sleep_min=3, sleep_sleep=2, sleep_hide=5, lm=1.5, out_key=5, out_time=6)

    

4.展示!
2022-04-07_20-07-30.jpg
4.1 部分功能参照:
windows cmd 自定义关机,重启,休眠: https://blog.csdn.net/qq_43674360/article/details/111246177
PsShutdown v2.53    : https://docs.microsoft.com/en-us/sysinternals/downloads/psshutdown
键盘各键对应的ASCII码值 : https://zhIDAo.baidu.com/question/266291349.html

5.分享 ( 欢迎大家 Fork!  )
Github地址 :https://github.com/Xyhshell/Auto_Pc_Power_Management
V2版执行文件分享!:https://jingmo.lanzouq.com/iibeq02yu7la
执行文件分享V1(不推荐)!:https://jingmo.lanzouq.com/iLAms02smaad

免费评分

参与人数 12吾爱币 +18 热心值 +9 收起 理由
7Rad7 + 1 + 1 热心回复!
adrianxxl + 1 + 1 谢谢@Thanks!
轻轻闪过 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lbwnba + 1 + 1 谢谢@Thanks!
Blueyes + 1 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sinoit + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
woyucheng + 1 + 1 谢谢@Thanks!
lgc81034 + 1 谢谢@Thanks!
风逝998 + 1 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
xswl233 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jingmoshell 发表于 2022-4-8 10:24
hacker922 发表于 2022-4-7 22:27
支持hello的摄像头模块都贵了啊,当年20+的时候没下手 原谅世界上最大的原罪——穷

看那些标题,50来块,我没做过,但看评论应该是是被炒起来了
shuangyan 发表于 2022-4-8 21:12
jingmoshell 发表于 2022-4-7 21:05
是哦,但是台式机也就不存在锁屏等问题了,

台式的比较多点,应该公司办公大多用台式,人走开或者临时有急事离开的多
shuangyan 发表于 2022-4-7 21:03
 楼主| jingmoshell 发表于 2022-4-7 21:05
shuangyan 发表于 2022-4-7 21:03
厉害,但是台式机还得装个摄像头-  -

是哦,但是台式机也就不存在锁屏等问题了,
zuoanmu 发表于 2022-4-7 21:08
厉害~~~~学些了~~~
yzmx 发表于 2022-4-7 21:13
可以,非常好用
hacker922 发表于 2022-4-7 21:16
台式机有摄像头 就可以考虑windows hello了 可惜支持的摄像头都比较贵
 楼主| jingmoshell 发表于 2022-4-7 21:18
hacker922 发表于 2022-4-7 21:16
台式机有摄像头 就可以考虑windows hello了 可惜支持的摄像头都比较贵

B站有教程自己做
fengF3ng 发表于 2022-4-7 21:25
很实用,谢谢分享
cyw669 发表于 2022-4-7 21:32
谢谢分享
dongge666 发表于 2022-4-7 21:37
台式机的我好像可以走了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 17:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表