当前位置: 代码网 > it编程>前端脚本>Python > Python实现windows自动关机功能

Python实现windows自动关机功能

2025年01月16日 Python 我要评论
python <shut.py>import ntplibfrom datetime import datetime, timezoneimport timeimport osimport

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

方法补充

除了上文的方法,下面小编为大家整理了其他的python实现windows自动关机的方法,希望对大家有所帮助

完整代码

# -*- coding: utf-8 -*-

# form implementation generated from reading ui file 'shut.ui'
#
# created: mon mar 20 18:10:31 2017
#      by: pyqt5 ui code generator 5.2.1
#
# warning! all changes made in this file will be lost!
import sys
import os
from pyqt5 import qtcore, qtgui, qtwidgets

class ui_shut(object):
    flag = true
    def setupui(self, shut):
        shut.setobjectname("shut")
        shut.resize(411, 170)
        shut.setfixedsize(411,170)
        self.label = qtwidgets.qlabel(shut)
        self.label.setgeometry(qtcore.qrect(40, 50, 41, 51))
        self.label.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.label.setobjectname("label")
        self.lineedit = qtwidgets.qlineedit(shut)
        self.lineedit.setgeometry(qtcore.qrect(70, 50, 71, 41))
        self.lineedit.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.lineedit.setobjectname("lineedit")
        self.label_2 = qtwidgets.qlabel(shut)
        self.label_2.setgeometry(qtcore.qrect(150, 60, 31, 31))
        self.label_2.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.label_2.setobjectname("label_2")
        self.lineedit_2 = qtwidgets.qlineedit(shut)
        self.lineedit_2.setgeometry(qtcore.qrect(180, 50, 71, 41))
        self.lineedit_2.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.lineedit_2.setobjectname("lineedit_2")
        self.label_3 = qtwidgets.qlabel(shut)
        self.label_3.setgeometry(qtcore.qrect(260, 60, 31, 31))
        self.label_3.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.label_3.setobjectname("label_3")
        self.pushbutton = qtwidgets.qpushbutton(shut,clicked=self.sd)
        self.pushbutton.setgeometry(qtcore.qrect(290, 50, 101, 41))
        self.pushbutton.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.pushbutton.setobjectname("pushbutton")
        self.label_4 = qtwidgets.qlabel(shut)
        self.label_4.setgeometry(qtcore.qrect(0, 120, 411, 31))
        self.label_4.setfont(qtgui.qfont("roman times",10,qtgui.qfont.bold))
        self.label_4.setobjectname("label_4")
        
        self.retranslateui(shut)
        qtcore.qmetaobject.connectslotsbyname(shut)

    def retranslateui(self, shut):
        _translate = qtcore.qcoreapplication.translate
        shut.setwindowtitle(_translate("shut", "auto shutdown by dearvee"))
        self.label.settext(_translate("shut", "at:"))
        self.label_2.settext(_translate("shut", "h"))
        self.label_3.settext(_translate("shut", "m"))
        self.label_4.settext(_translate("shut", "please input time of shutdown~"))
        self.pushbutton.settext(_translate("shut", "set"))

    def sd(self,shut):
        h = self.lineedit.text()
        m = self.lineedit_2.text()
        if self.flag:
            self.flag = false
            try:
                os.popen('at '+h+':'+m+' shutdown -s')
                self.label_4.settext('success! the system will shutdown at today '+h+':'+m+'.')
                self.pushbutton.settext('remove all')
                self.lineedit.clear()
                self.lineedit_2.clear()
            except:
                self.label_4.settext('something is wrong~')
        else:
            self.flag = true
            try:
                os.popen('at /delete /yes')
                self.label_4.settext('success! already removed~')
                self.pushbutton.settext('set')
                self.lineedit.clear()
                self.lineedit_2.clear()
            except:
                self.label_4.settext('something is wrong~')
        
if __name__ == '__main__':   
    app = qtwidgets.qapplication(sys.argv)
    form = qtwidgets.qwidget()
    ui = ui_shut()
    ui.setupui(form) 
    form.show()
    sys.exit(app.exec_())

到此这篇关于python实现windows自动关机功能的文章就介绍到这了,更多相关python windows自动关机内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com