Python实现windows自动关机

python <shut.py>

python 复制代码
import ntplib
from datetime import datetime, timezone

import time
import os

import easygui

# net time
def get_network_time():
    time.sleep(3)
    """从网络时间服务器获取时间"""
    client = ntplib.NTPClient()
    response = client.request('pool.ntp.org')
    utc_time = datetime.utcfromtimestamp(response.tx_time)
    beijing_time = utc_time + timedelta(hours = 8)
    return beijing_time
    #return datetime.fromtimestamp(response.tx_time, timezone.utc)


local = datetime.now()
if local.hour >=0 and local.hour<7:
    print("当前时间处于0点至9点之间")
    os.system('shutdown /a')
    os.system('shutdown /s /t 60')
    easygui.msgbox("现在是休息时间,电脑即将关机,请你马上睡觉!!", "提示")
    easygui.msgbox("电脑即将关机!", "提示")
else:
    easygui.msgbox("当前时间不处于0点至7点之间=>local:[{}]".format(local.hour), "提示")
    os.system('shutdown /s /t 9000')

    # 下面的代码已经在关机后了~~~
    time.sleep(10)

    # 每隔3小时,执行关机
    while True:
        print("每隔3小时,执行关机")
        easygui.msgbox("电脑将在2.5小时后关闭,请注意休息~~", "提示")
        time.sleep(10800)
        os.system('shutdown /a')
        os.system('shutdown /s /t 60')

'''
try:
    
    # 获取网络时间
    current_time = get_network_time()

    # 提取小时数
    hour = current_time.hour
    

    # 判断是否处于0点至7点之间
    if 0 <= hour < 7:
        print("当前时间处于0点至7点之间")
        os.system('shutdown /a')
        os.system('shutdown /s /t 60')
        easygui.msgbox("现在是休息时间,电脑即将关机,请你马上睡觉!!", "提示")
        easygui.msgbox("电脑即将关机!", "提示")
    else:
        easygui.msgbox("当前时间不处于0点至7点之间=>remote[{}]".format(hour), "提示")
        os.system('shutdown /s /t 9000')
   

except:
    print('网络异常!!')

'''

vbe文件

powershell 复制代码
Set ws = WScript.createObject("WScript.Shell")
ws.run "D:/data\Python/cmd.bat",0

<cmd.bat>

bash 复制代码
@echo off
title 执行Python脚本

c: & cd c:\Users\Administrator\AppData\Local\Programs\Python\Python37
python "D:\data\Python\shut.py" >>"D:\data\Python\%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%-%time:~3,2%-%time:~6,2%.txt"
::pause

计划任务,批处理,避免冲突

bash 复制代码
@echo off
::由于shutdown不能执行多次,所以先取消后,再次执行!

shutdown /a
shutdown /s /t 30
相关推荐
wuyk55536 分钟前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
hey_sml43 分钟前
JAVA每日一学---CompletableFuture中thenApply与thenCompose区别详解
java·开发语言
江畔柳前堤1 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
萧瑟余晖2 小时前
Java深入解析篇十七之SpringCloud
java·开发语言
北斗落凡尘2 小时前
LangGraph 入门实战(2)
python·langchain
ttod_qzstudio3 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
萧瑟余晖4 小时前
Java深入解析篇十七之Spring Security
java·开发语言·spring
jufeng13074 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 1 篇】
人工智能·python·架构·agent
月光船幽幽5 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
天天进步20156 小时前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui