收到朋友的请求,让我帮他做一个电脑关机程序,其实非常简单。代码如下:

import tkinter as tk  # 导入tkinter模块
from tkinter import ttk # 导入ttk模块
import subprocess # 导入subprocess模块 def shutdown():
hours = hour_entry.get() # 获取时的填空中的值
minutes = minute_entry.get() # 获取分的填空中的值
seconds = second_entry.get() # 获取秒的填空中的值 try:
hours = int(hours) # 将时转换为整数
minutes = int(minutes) # 将分转换为整数
seconds = int(seconds) # 将秒转换为整数 total_seconds = hours * 3600 + minutes * 60 + seconds # 计算总秒数 if total_seconds <= 0: # 如果总秒数小于等于0
raise ValueError # 抛出值错误 subprocess.run(f"shutdown -s -t {total_seconds}") # 执行关机命令
label.config(text="计算机将在{}秒后关机".format(total_seconds)) # 更新标签文本
except ValueError:
label.config(text="请输入一个有效的时间") # 更新标签文本 # 创建窗口
window = tk.Tk() # 创建Tk窗口对象
window.title("定时关机程序") # 设置窗口标题 # 设置窗口大小
window.geometry("500x300") # 设置窗口宽度和高度 # 设置ttk主题
style = ttk.Style() # 创建ttk样式对象
style.theme_use('clam') # 使用clam主题 # 创建标签
label = ttk.Label(window, text="请输入关机时间(时:分:秒):") # 创建标签对象
label.pack() # 将标签放置到窗口中 # 创建时的填空
hour_frame = ttk.Frame(window) # 创建Frame对象
hour_frame.pack() # 将Frame放置到窗口中 hour_label = ttk.Label(hour_frame, text="时:") # 创建标签对象
hour_label.pack(side=tk.LEFT) # 将标签放置到Frame中 hour_entry = ttk.Entry(hour_frame) # 创建Entry对象
hour_entry.pack(side=tk.LEFT) # 将Entry放置到Frame中 # 创建分的填空
minute_frame = ttk.Frame(window) # 创建Frame对象
minute_frame.pack() # 将Frame放置到窗口中 minute_label = ttk.Label(minute_frame, text="分:") # 创建标签对象
minute_label.pack(side=tk.LEFT) # 将标签放置到Frame中 minute_entry = ttk.Entry(minute_frame) # 创建Entry对象
minute_entry.pack(side=tk.LEFT) # 将Entry放置到Frame中 # 创建秒的填空
second_frame = ttk.Frame(window) # 创建Frame对象
second_frame.pack() # 将Frame放置到窗口中 second_label = ttk.Label(second_frame, text="秒:") # 创建标签对象
second_label.pack(side=tk.LEFT) # 将标签放置到Frame中 second_entry = ttk.Entry(second_frame) # 创建Entry对象
second_entry.pack(side=tk.LEFT) # 将Entry放置到Frame中 # 创建按钮
button = ttk.Button(window, text="关机", command=shutdown) # 创建按钮对象
button.pack() # 将按钮放置到窗口中 # 运行窗口
window.mainloop() # 进入窗口的主循环

程序运行结果:

[Python急救站]定时关机程序的更多相关文章

  1. MFC定时关机程序的实现1

    写个定时关机程序自用,界面简单实用,最终界面如下 第一步,新建一个MFC对话框应用程序,拖几个控件过来, 界面如下: 然后给下拉列表框,复选按钮绑定变量,以方便进行操作. CComboBox m_co ...

  2. C语言/python实现定时关机

    1.python def shutdown(): print('(1)定时关机\n(2)取消定时关机\n(3)立即关机\n(4)关机重启') b = eval(input('请选择:\n')) if( ...

  3. 我的定时关机程序(MFC实现) .

    原理: 利用定时器去检查,如输入的是多少分钟后关机,就根据输入的分钟数产生一个COUNT计数器,计数器一直递减,直到1,然后执行关机.如输入的是几时几分关机,那么定时器会每次都检查系统的时间和你输入的 ...

  4. MFC定时关机程序的实现3-最小化到托盘栏

    这个定时关机运行过后默认最小化到托盘栏最好了,不用每次都去点了. 现在来看看如何将程序显示在托盘栏. 首先在头文件里声明一个变量和一个消息响应函数 //最小化到托盘栏 //第一步,生成一个成员变量,或 ...

  5. MFC定时关机程序的实现2-添加启动项到注册表

    虽然上一篇实现了的定时关机,但是还不够完善,比如开机自动启动,然后按照配置的时间定时关机,并最小化到任务栏. 先来说开机启动怎么实现,开机启动实现的方法有好几种,比如直接在开始菜单启动项里添加一个程序 ...

  6. python 系统定时关机

    #coding=utf-8 "shutdown at 23:00" from datetime import * import os import win32api import ...

  7. window 定时关机小程序bat

    复制以下文本,新建txt文件并修改为bat后缀 如图: @echo off title 定时关机 echo 定时关机程序 echo ---------------------------------- ...

  8. C# 简单的定时关机

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. python制作电脑定时关机办公神器,另含其它两种方式,无需编程!

      小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好.   对身体 ...

  10. Windows: 在系统启动时运行程序、定时计划任务、定时关机

    lesca今天介绍一些让系统在启动时,而非登录时,加载用户自定义的应用程序或脚本的方法,推荐度从前到后依次递减. 1. Windows任务计划(task scheduler) 用户可以按以下步骤进行操 ...

随机推荐

  1. 【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?

    在开发过程中,进度比较赶的情况下,前端人员当页面写完时,后台的接口还没写完,等要交付的时候后端才把接口给你,这个时候就很尴尬. 这个时候 Mock 就可以很好的解决这个问题,前端团队可以在 API 还 ...

  2. 记一次 .NET某新能源检测系统 崩溃分析

    一:背景 1. 讲故事 前几天有位朋友微信上找到我,说他的程序会偶发性崩溃,一直找不到原因,让我帮忙看一下怎么回事,对于这种崩溃类的程序,最好的办法就是丢dump过来看一下便知,话不多说,上windb ...

  3. JDK 动态代理原理

    代理模式 客户端不直接访问目标对象,需要通过第三者来实现间接访问对象 代理对象在客户端和目标对象之间起中介作用,能够屏蔽目标对象不想让客户端知道的内容,或增加额外的服务 动态代理 JDK 动态代理:基 ...

  4. Emit 实体绑定源码开源,支持类以及匿名类绑定(原创)

    动态实体绑定 主要有以下两种 1.表达式树构建委托 2.Emit构建委托 根据我的经验 Emit 代码量可以更少可以很好实现代码复用 Emit实践开源项目地址跳转 https://www.cnblog ...

  5. 手撕Vuex-Vuex实现原理分析

    本章节主要围绕着手撕 Vuex,那么在手撕之前,先来回顾一下 Vuex 的基本使用. 创建一个 Vuex 项目,我这里采用 vue-cli 创建一个项目,然后安装 Vuex. vue create v ...

  6. 这次弄一下maven 多模块项目,用vscode新建一下,便于管理项目

    首先 创建一个mvn项目, 直接在命令行执行, 原型生成: mvn archetype:generate 选一个maven quick start的template, 然后删除src和target文件 ...

  7. HTML5学习内容-3

    (一)行高 line-height,一行文字的高度 例子 <!DOCTYPE html> <html lang="en"> <head> < ...

  8. 打造我的 Windows 开发环境

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  9. Codeforces Round #736 (Div. 2). D - Integers Have Friends

    原题:D - Integers Have Friends 题意: 给定一个数组,求一个最长子数组满足\(a_i \,\, mod \,\, m \,\, = \,\, a_{i + 1} \,\, m ...

  10. WPF --- 如何以Binding方式隐藏DataGrid列

    引言 如题,如何以Binding的方式动态隐藏DataGrid列? 预想方案 像这样: 先在ViewModel创建数据源 People 和控制列隐藏的 IsVisibility,这里直接以 MainW ...