python实现电脑自动关机
初学python,想做一个自动关电脑的程序,到了晚上11点让电脑自动关机,写了一个简单的python代码。虽然只是一个简单的功能,但是经历了好几次优化的过程
第一个过程:最简单的实现定时关机的功能
from datetime import * import ostmNow = datetime.now() d = date.today() t = time(23,10,0) shtdownTime = datetime.combine(d,t)def ShutDown():while True:tmNow = datetime.now()timedDelta = (shtdownTime - tmNow).total_seconds()if timedDelta < 60:os.system('shutdown -s -f -t 59')breakelse:continueif __name__ == '__main__':ShutDown()
上面这个代码已经实现了基本的自动关机功能。使用一个while循环实时监测当前时间距离关机时间还有多少秒,当距离关机时间<1分钟的时候,执行关机的脚本os.system('shutdown -s -f -t 59')
第二个过程:给机主一个弹框提示
但是这样不够人性化,机主也许在工作有需要保存的工作没有保存,这样突然关机导致机主的代码或者游戏进度丢失,所以我想在关机之前给机主一个弹框提示“我要关机了,赶快保存一下!”,这就需要使用win32api库,调用Windows的钩子函数弹出messageBox。改进之后的代码如下:
1 from datetime import * 2 import os 3 4 tmNow = datetime.now() 5 d = date.today() 6 t = time(23,10,0) 7 shtdownTime = datetime.combine(d,t) 8 9 def ShutDown(): 10 while True: 11 tmNow = datetime.now() 12 timedDelta = (shtdownTime - tmNow).total_seconds() 13 if timedDelta < 60: 14 win32api.MessageBox(win32con.NULL, u'还有59s关机,赶快保存一下!', u'温馨提醒', win32con.MB_OK) 15 os.system('shutdown -s -f -t 59') 16 break 17 else: 18 continue 19 20 if __name__ == '__main__': 21 ShutDown()
相比第一段代码只是新增了第15行 win32api.MessageBox(win32con.NULL, u'还有59s关机,赶快保存一下!', u'温馨提醒', win32con.MB_OK),距离开机时间<1分钟的时候,给出一个弹框提示。点击确定按钮开始执行关机脚本。
但是这样又出现了一个问题,如果机主不点击“温馨提醒”对话框的确定按钮,程序就永远也不会执行关机脚本,这样机主哪怕玩到夜里一两点也不会自动关机了。所以就有了第三个过程的改进。
第三个过程:双线程实现,一个线程用来弹出提醒框,另一个线程用来执行关机脚本,也就是我的最终代码。代码如下。
1 #coding=utf-8 2 "shutdown at 23:00" 3 4 from datetime import * 5 import os 6 import win32api 7 import win32con 8 from threading import * 9 10 tmNow = datetime.now() 11 d = date.today() 12 t = time(23,10,0) 13 shtdownTime = datetime.combine(d,t) 14 15 def ShowHint(): 16 while True: 17 tmNow = datetime.now() 18 timedDelta = (shtdownTime - tmNow).total_seconds() 19 if timedDelta < 60: 20 win32api.MessageBox(win32con.NULL, u'还有59s关机,赶快保存一下!', u'温馨提醒', win32con.MB_OK) 21 break 22 else: 23 continue 24 def ShutDown(): 25 while True: 26 tmNow = datetime.now() 27 timedDelta = (shtdownTime - tmNow).total_seconds() 28 if timedDelta < 60: 29 os.system('shutdown -s -f -t 59') 30 break 31 else: 32 continue 33 34 if __name__ == '__main__': 35 threadShowHint = threading.Thread(target=ShowHint) 36 threadShutDown = threading.Thread(target=ShutDown) 37 38 threadShowHint.start() 39 threadShutDown.start()
View Code
转载于:https://www.cnblogs.com/summerise8090/p/8340070.html
python实现电脑自动关机相关推荐
- Python写电脑自动关机程序并打包成exe文件
嗨嗨,大家晚上好呀,我是小圆
- python电脑配置大概要多少钱-学python最电脑配置有要求么
python对于电脑硬件基本没什么要求,下载python安装程序的时候,注意看下自己电脑属性是64位系统还是32位系统,再下载对应的python安装程序. 单纯学Python的话普通电脑就ok了,机器 ...
- python运行速度和电脑配置有关系吗-学python最电脑配置有要求么
python对于电脑硬件基本没什么要求,下载python安装程序的时候,注意看下自己电脑属性是64位系统还是32位系统,再下载对应的python安装程序. 单纯学Python的话普通电脑就ok了,机器 ...
- python电脑要求-学python对电脑配置有要求么
python对于电脑硬件基本没什么要求,下载python安装程序的时候,注意看下自己电脑属性是64位系统还是32位系统,再下载对应的python安装程序. 单纯学Python的话普通电脑就ok了,机器 ...
- python硬盘api-使用python获取电脑的磁盘信息方法
使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能. 在iPython交互界面中进行如下演示: 查看电脑的磁盘分区: I ...
- .计算机自动关机或重启,电脑自动关机或者重启怎么处理
不少同学可能会遇到这样的情况,电脑运行的好好的自动就关机或者自动重新启动了,脚本之家经常接到网友类似的求助.显然不管是电脑自动关机还是电脑自动重新启动都是不正常的,那么为什么电脑会自动关机与自动重新启 ...
- 系统即将关机请保存关机是由nt_设置Windows电脑自动关机
为了减少长时间沉迷电脑而忘记时间,设置Windows电脑自动关机是必要的事. 在我的电脑里,每到晚上10点都会自动关机.当然不会立刻关机,而是设置了1分钟的预留时间给自己保存一些文档资料. Windo ...
- Python获取电脑硬件信息及状态的实现方法
From: http://www.jb51.net/article/54470.htm 这篇文章主要介绍了Python获取电脑硬件信息及状态的实现方法,是一个很实用的技巧,需要的朋友可以参考下 本文以 ...
- Python获取电脑硬件配置的封装类,可以获取CPU序列号、主板序列号、BIOS序列号、硬盘序列号和网卡MAC地址
Python获取电脑硬件配置的封装类,可以获取CPU序列号.主板序列号.BIOS序列号.硬盘序列号和网卡MAC地址. myPyHardware.py # -*- coding: utf-8 -*- i ...
最新文章
- POJ 3683 【2-sat+求一组可行解】.cpp
- 浅谈JS原型与原型链(一)
- jQuery URL Decoder Plugin
- win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
- js 事件委托深入浅出
- 二三星缩水软件手机版_还在抱怨三星手机不好用?用这些软件立马解决
- js打印线程id_浅谈python中的多线程和多进程(二)
- js控制文件拖拽,获取拖拽内容。
- python tkinter库Entry控件Text控件
- 解决linux下javac -version和java -version版本显示不一致
- Oracle 11g vs 12c 内存、优化器等默认参数对比
- js 连mysql 延后_详解MySQL 主从同步延迟
- 网吧计费系统数据库修复/网吧收银系统数据库恢复
- 谐波平衡 matlab,解非线性振动问题的摄动谐波平衡法
- 利用WinEdt修改图片格式为eps
- 大数据自助分析平台系列文章(深入讲解由零开始设计一个大数据自助分析平台)
- 极值点 驻点 鞍点 拐点
- 关于win10X64 连接oracle
- 折腾开源WRT的AC无线路由之路-1
- Hexo的Next主题配置