windows强制锁屏,避免久坐久看

一、背景

        长时间在显示器前久坐久看不仅对眼睛不好而且对腰椎颈椎造成极大伤害,可以使用定时器提醒,但多有不便——声音提示可能听不到(台式机)或者担心影响其他人;工作非常投入时随手关掉继续工作。针对定时器的两个问题,考虑采用终极方式——直接锁屏不允许工作,只能休息喝点水、站起来走走或者向远处眺望。

二、环境要求

        windows还没有简单易用的第三方软件实现,所以考虑使用windows的定时+python实现。确保环境安装了python环境,可到https://www.python.org/ 下载。

三、实现

RestTimer.py内容如下,休息时间不结束一直保存锁屏态。

# -*- coding: UTF-8 -*-
import os
import time

REST_MINUTES = 10  # 请设定你自己的休息时间


def CallWinLockScreen():
    os.system('rundll32.exe user32.dll, LockWorkStation')


def LockScreenLoop(secTimer: int, offset: int):
    secTimer -= offset
    while secTimer > 0:
        if secTimer % 10 == 0:
            CallWinLockScreen()
        time.sleep(1)
        secTimer -= 1


def main():
    setTimeLeft = REST_MINUTES * 60  # 单位秒
    lockScreenTime = 10  # 单位秒

    timeLeft = lockScreenTime 
    print(f'Task a break and have {REST_MINUTES} minutes rest! Screen will be locked in {lockScreenTime}s')
    print('\r{: >12}s left'.format(timeLeft), end='')

    while timeLeft > 0:
        time.sleep(1)
        timeLeft -= 1
        if timeLeft != 0:
            print('\r{: >12}s left'.format(timeLeft), end='')
        else:
            print('\r{: >12}s left'.format(timeLeft), end='\n')
    LockScreenLoop(setTimeLeft, lockScreenTime)
    print('======You can work======')


if __name__ == '__main__':
    main()

四、配置windows定时任务

1. Win+R打开“运行”,输入taskschd.msc回车,打开计划任务

2. 点击创建任务,在名称写定时器任务名

118077690173452badc4be70d602ca29.png

3. 点击触发器-->新建,开始编辑(当前配置会在每天9:40 10:40……锁屏)

d7a0c5c4c30e424a9af042c0784f139b.png

4d93325c063942fc92ba5e9d1170fa08.png

4. 点击操作--新建,设置程序脚本,确定即配置完成

b139c9a99850454e8dbb261b345ce631.png

5. 在主界面可见定时任务,如未启动可右键启动

6c69a38e11c6468493c11b4204c7d185.png

五、注意事项

1. 解锁后可在出现的cmd下ctrl+c终止,定时任务会在下个时间继续执行

参考

[1] https://755452800.github.io/2022/02/04/force-to-rest/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值