当前位置: 首页 > article >正文

Python实现windows自动关机

python <shut.py>

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文件

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

<cmd.bat>

@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

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

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

shutdown /a
shutdown /s /t 30

http://www.kler.cn/a/500881.html

相关文章:

  • 操作系统之磁盘
  • 新活动平台建设历程与架构演进
  • Node.js——fs(文件系统)模块
  • 如何实现多级缓存?
  • YARN 架构组件及原理
  • 基于 Python 和 OpenCV 的人脸识别上课考勤管理系统
  • (leetcode算法题)239. 滑动窗口最大值
  • MoMA: 基于多头注意力的动量对比学习知识蒸馏,用于组织病理学图像分析|文献速递-视觉大模型医疗图像应用
  • 安卓studio生成apk步骤
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(9)带孔矩形板与L型支架案例的对称平面处理方案
  • 如何学习Vue设计模式
  • 应急响应之入侵排查(下)
  • VSCode 更好用的设置
  • 2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉
  • el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange
  • ssh链接飞牛NAS的时候出现WARNING提示无法正常登录!按照这个可以解决
  • 数据结构与算法之二叉树: LeetCode 700. 二叉搜索树中的搜索 (Ts版)
  • 【网络云SRE运维开发】2025第2周-每日【2025/01/10】小测-【第10章 ACL理论和实操考试】解析
  • Golang——channel
  • DS内排—堆排序
  • LeetCode 521最长特殊序列
  • 【STM32-学习笔记-3-】TIM定时器
  • 【C++开源库】Boost.Asio网络库使用介绍
  • 大模型训练(2):内存开销