通过Python实现电脑定时关机的两种方法

目录
  • 导语
  • 一、普通人关机
  • 二、程序员关机
    • 1)Pyqt5界面化小程序
    • ​2)Tkinter界面化小程序

导语

无论家用电脑还是公司的电脑,定时开关机都是一个非常实用的功能,只是一般都不太受关注。定时关机不仅能延长电脑的使用寿命,还能节约超多的电费呢~哈哈哈哈​

害~这不,周天休假一天,但是公司的电脑大部分的小伙伴儿就开了一天,有时候放长假的时候电脑一开就是几天。这不?隔壁的小姐姐已经被领导发现了,最后的最后这个事情就落到我手里了,开发一个能定时关机的源码项目供大家使用,并互相提醒每个人一定要下班关机!

定时开关机是个非常简单又实用的功能,跟着本文用不了10分钟你就能学会如何进行操作了哈~

本文介绍了:普通人关机的习惯方式、以及程序员关机的方式哈!主页(pc端)左侧有源码滴~

并且程序员关机附了2份代码喜欢tkinter的就用tk版本的,喜欢pyqt5的就用这版本的。两个版本大家自己爱用那个用那个哈~

一、普通人关机

0)优雅的关机

1)快捷键关机

使用快捷键关机相信是大家比较常用的方法了吧?也是最简单方便的方法。

按下快捷键【Alt】+【F4】弹出功能对话框,实现快速关机,又快又准效率极高。

2)任务管理器关机

这个方法和上一个快捷键关机的方法有着异曲同工之妙,按下快捷键【Alt】+【Ctrl】+

【Delete】,打开任务管理器,右下方有个圆形关机按钮,点击即可关机。

3)设置关机时间

这个方法可以实现定时关机,算好想要关机的时间,设置完成后电脑到点就会自动关机。再也不用因为电脑关机更新而等个半天了。按下快捷键【win】+【R】,在运行对话框内输入《at 20:00 shutdown -s》后点击确定,系统就会在晚上8点准时关机。这个方法可以在大家确定能够关机时间的情况下使用还是非常方便的。

4)鼠标滑动关机

在电脑桌面位置创建一个快捷方式,在出现的对话框内输入“slidetoshutdown”后点下一步。

点击完成即可。

此时电脑桌面上就多了一个快捷方式,想要关机时双击该快捷方式,就会出现以下提示,滑动就可以关闭电脑了。

二、程序员关机

嘿嘿~虽然确实正常人开关机上面的更方便快速哈!但是源码打包成exe点开更方便啦~尤其是在电脑需要几个小时之后关机的,需要先让电脑自动完成任务再关机滴~呐这个还蛮方便的~也许,应该更方便.jpg 强行解释的我2333~这就是娱乐娱乐的代码哈哈哈哈~

1)Pyqt5界面化小程序

1.1  附源码项目

# -*—coding:utf-8 -*-
import sys
import os      # Python执行系统命令方法所用到的包
from PyQt5 import QtCore,QtGui,QtWidgets 

class Ui_shut(object):   #类 继承object类
	flag = True
	def setupUi(self,shut):  #方法
	    #设置窗体的大小
		shut.setObjectName("shut")
		shut.resize(420,180)
		shut.setFixedSize(420,180)

		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)  #为pushButton添加监听事件click。
		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, 500, 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) #connectSlotsByName是一个QMetaObject类里的静态函数,其作用是用来将QObject * o里的子QObject的某些信号按照其objectName连接到o的槽上。

	def retranslateUi(self,shut):
		_translate = QtCore.QCoreApplication.translate
		shut.setWindowTitle(_translate("shut", "Windows定时关机器"))
		self.label.setText(_translate("shut", "在:"))
		self.label_2.setText(_translate("shut", "时"))
		self.label_3.setText(_translate("shut", "分"))
		self.label_4.setText(_translate("shut", "    请输入关机时间"))
		self.pushButton.setText(_translate("shut", "设置"))
	def sd(self,shut):        #self.sd为触发该事件后,需要执行的操作。
		h = self.lineEdit.text()
		m = self.lineEdit_2.text()
		if self.flag:
			self.flag = False
			try:                     #捕获所有异常
				os.popen('at'+ h + ':' + m + ' shutdown -s') #python执行cmd命令的方法
				self.label_4.setText('    设置成功! 系统将关机在今天 '+h+':'+m)
				self.pushButton.setText('移除')
				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('成功,全部移除')
				self.pushButton.setText('Set')
				self.lineEdit.clear()
				self.lineEdit_2.clear()
			except:
				self.label_4.setText('Something is wrong')

1.2  效果展示

​2)Tkinter界面化小程序

2.1  附源码项目

from tkinter import ttk
import os
import tkinter.messagebox as message_box

windows = tkinter.Tk()
windows.title("Python定时关机")
# window 居中
windows.update()  # update window ,must do
curWidth = 280  # get current width
curHeight = windows.winfo_reqheight()  # get current height
scnWidth, scnHeight = windows.maxsize()  # get screen width and height
# now generate configuration information
config = '%dx%d+%d+%d' % (curWidth, curHeight,
                          (scnWidth - curWidth) / 2, (scnHeight - curHeight) / 2)
windows.geometry(config)
# root 容器
root = ttk.LabelFrame(windows, text="关机命令")
root.grid(column=0, row=0, padx=15, pady=15)
# 提醒文本
tkinter.Label(root, text="输入时间").grid(column=0, row=0, sticky=tkinter.W)
tkinter.Label(root, text="选择").grid(column=1, row=0)

# 存储输入的值
time = tkinter.StringVar()
unit = tkinter.StringVar()
# 输入框
time_edit = tkinter.Entry(root, width=10, textvariable=time)
time_edit.grid(column=0, row=1, padx=4, sticky=tkinter.W)
time_edit.focus()
# 下拉单位选择
unit_arr = ('时', '分', '秒')
unit_chosen = ttk.Combobox(root, width=6, textvariable=unit, state='readonly')
unit_chosen['values'] = unit_arr
unit_chosen.grid(column=1, row=1)
unit_chosen.current(0)

def change_edit(to_time):
    time_edit.delete(0, 10)
    time_edit.insert(0, to_time)
    unit_chosen.current(1)

# start
def start():
    if time.get() and unit.get():
        message_box.showwarning("选择完毕", "你的电脑将在多少 %s %s" % (time.get(), unit.get()))
        # shutdown 的秒数
        count_down_second = int(time.get())
        if unit.get() == 'hour':
            count_down_second *= 3600
        elif unit.get() == 'minute':
            count_down_second *= 60
        # execute
        os.system("shutdown -s -t %s" % count_down_second)
        windows.quit()

# cancel
def cancel():
    os.system("shutdown -a")
    windows.quit()

# start 按钮
start_action = tkinter.Button(root, text="START", command=start)
start_action.grid(column=2, row=1)
# 文本
tip_label = tkinter.Label(root, text="倒计时关机")
tip_label.grid(row=2, column=0, pady=2)
# 快捷选择时间
fram = tkinter.Frame(root)
fram.grid(row=3, column=0, columnspan=3)
# 常用的时间
for i in range(2, 7):
    button = tkinter.Button(fram, text=str(i * 15) + "min", command=lambda x=i: change_edit(str(x * 15)))
    button.grid(row=0, column=i - 2, padx=2, pady=2, sticky=tkinter.W)
# cancel 按钮
cancel_action = tkinter.Button(root, text="CANCEL", command=lambda: cancel())
cancel_action.grid(row=4, column=1, pady=10, sticky=tkinter.W)

2.2  效果展示

以上就是通过Python实现电脑定时关机的两种方法的详细内容,更多关于Python电脑定时关机的资料请关注我们其它相关文章!

(0)

相关推荐

  • 利用Python实现Windows定时关机功能

    是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候能用到的,刚才写了个windows自动关机的小程序,程序过于简单,就当是玩玩吧,当然还有很多可改进的地方.下面正文:  #ui制作: 照旧,笔者由Qt制作完成需要的ui,包括label,label_2,label_3,lable_4,lineEdit,lineEdit_2,pushButton组件.

  • python自动循环定时开关机(非重启)测试

    做手机整机测试的,肯定有开关机的需求,关机,几分钟后再开机(一直循环操作测试,就是不能重启):这个需求在关机后就没有办法开机了,任何脚本命令都不行,除非做APP:重启功能的缺点是关机后就立即开机了,需求是关机后几分钟才开机,reboot做不到: 基本思路:现在借用终端自带的定时开关机APP功能,定时开关机只能定时一天就一个时间,达不到这个目的,这个APP作为辅助,关机后几分钟自动开机,开机后更改系统时间或者定时开关机APP时间,来达到测试多次开关机功能 废话不多说,来看看脚本怎么写 # -*-

  • 用python写一个windows下的定时关机脚本(推荐)

    由于本人经常使用笔记本共享WiFi,但是又不想笔记本开机一夜(为了低碳环保嘛 ~_~!),所以每次都要用使用DOS命令关机,感觉好麻烦.正好最近在学习Python,于是决定用python写一个定时关机的脚本: 话不多说由于代码比较简单,直接上代码. 代码块 # -*- coding: utf-8 -*- """ Created on Sat Dec 19 11:18:16 2015 @author: win7 """ '''定时关机''' '''

  • python tkinter实现定时关机

    本文实例为大家分享了python tkinter实现定时关机的具体代码,供大家参考,具体内容如下 很早以前写的,懒得修改,代码很简单,适合初学者 运行效果图如下: 使用注意 设定时间后点击开始即可实现定时关机,同时窗口也会关闭 想要取消关机的话,再次打开,点取消即可 代码如下 import os,time # import multiprocessing import threading from tkinter import * from tkinter import ttk import t

  • python实现Windows电脑定时关机

    定时关机,功能:windows下,用户按照一定格式输入关机时间,系统到指定时间自动关闭 思路:从用户输入获取指定时间 分别以时分秒减去当前时间 最终计算得到当前时间距离指定 时间还有多少秒 作为关机命令的时间参数. 需要用到的模块: os 用于执行设定的系统命令 time 用于获取系统时间 需要用到cmd命令: shutdown -s -t xxx 其中xxx为距离自动关机所用秒数,即时间参数 shutdown -a 取消关机计划. 代码: import os import time input

  • python定时关机小脚本

    本文实例为大家分享了python定时关机的具体代码,供大家参考,具体内容如下 # coding: utf-8 import sys import os import time reload(sys) sys.setdefaultencoding("GBK") # shutdown computer after time_diff seconds def shutdown(seconds): print str(seconds) + u' 秒后将会关机...' time.sleep(se

  • 通过Python实现电脑定时关机的两种方法

    目录 导语 一.普通人关机 二.程序员关机 1)Pyqt5界面化小程序 ​2)Tkinter界面化小程序 导语 无论家用电脑还是公司的电脑,定时开关机都是一个非常实用的功能,只是一般都不太受关注.定时关机不仅能延长电脑的使用寿命,还能节约超多的电费呢~哈哈哈哈​ 害~这不,周天休假一天,但是公司的电脑大部分的小伙伴儿就开了一天,有时候放长假的时候电脑一开就是几天.这不?隔壁的小姐姐已经被领导发现了,最后的最后这个事情就落到我手里了,开发一个能定时关机的源码项目供大家使用,并互相提醒每个人一定要下

  • python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = count_pu = 0 for s in str: # 英文 if s in string.ascii_letters: count_en += 1 # 数字 elif s.isdigit(): count_dg += 1 # 空格 elif s.isspace(): count_sp += 1 #

  • python 字典中取值的两种方法小结

    如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name']) print a.get('name'),type(a.get('name')) 发现这两个结果完全一致,并没有任何的差异. 怎么选择这两个不同的字典取值方式呢? 如果字典已知,我们可以任选一个,而当我们不确定字典中是否存在某个键时,我之前的做法如下 if 'age' in a.keys(): print a['age'] 因为不先

  • 使用Python将图片转正方形的两种方法实例代码详解

    一.将原图粘贴到一张正方形的背景上 def trans_square(image): r"""Open the image using PIL.""" image = image.convert('RGB') w, h = image.size background = Image.new('RGB', size=(max(w, h), max(w, h)), color=(127, 127, 127)) # 创建背景图,颜色值为127 leng

  • python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Author: Hero Liu # python读取剪切板内容 import win32clipboard as w import win32con def get_text(): w.OpenClipboard() d = w.GetClipboardData(win32con.CF_TEXT) w.C

  • python 实现ping测试延迟的两种方法

    一.python实现ping返回延迟繁琐版 #!/usr/bin/python3.7 # !coding:utf-8 __author__ = 'hsz' __date__ = 'Thu Feb 27 22:41:15 EST 2020' import time import struct import socket import select import sys def chesksum(data): """ 校验 """ n = len(d

  • python文件读取read及readlines两种方法使用详解

    目录 引言 .read([size])方法 .readlines()方法 引言 with open() as 和open()都是打开,还没有读入文件 假设test.fa的内容如下图所示: ACGACGTAGCGTAGCTACGATCAGCGACGAGCTAGCGACGA .read([size])方法 read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它返回字符串对象. with open('test.fa') as fa: f = fa

  • Python识别二维码的两种方法详解

    目录 前言 pyzbar + PIL cv2 前言 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我们生活中不可或缺的一部分. 在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”.“用Python制作动图二维码”之类的文章.而关于使用Python批量识别二维码的教程,并不多见.所以今天我会给大家分享两种批量识别二维码的Python技巧! pyzbar + P

  • 详解用Python为直方图绘制拟合曲线的两种方法

    直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状.中心位置以及数据的离散程度等. 在python中一般采用matplotlib库的hist来绘制直方图,至于如何给直方图添加拟合曲线(密度函数曲线),一般来说有以下两种方法. 方法一:采用matplotlib中的mlab模块 mlab模块是Python中强大的3D作图工具,立体感效果极佳.在这里使用mlab可以跳出直方图二维平面图形的限制,在此基础上再添加一条曲线.在这里,

  • python脚本设置系统时间的两种方法

    本文为大家分享了两种python脚本设置系统时间的方法,供大家参考,具体内容如下 第一种方法,使用Python设置系统时间,即给系统校时 #电脑时间用了一段时间后,系统时间不准了,想更新一下 #在windows里面,更新系统时间,时常失败,而且速度很忙. #在网上拷贝的代码,发现很好用,比windows自带的实现要快. #-*- coding:utf-8 -*- import socket import struct import time import win32api TimeServer

随机推荐