Windows电脑开机自启动弹窗并保存所填信息

目录

一、背景介绍

二、具体实现

2.1 编写Python脚本

2.2 设置开机自启动脚本


一、背景介绍

Windows电脑开机后跳出一个对话框弹窗(GUI界面),提示用户填写相关信息,用户填写完内容后自动保存到事先指定路径的Excel表里。为了保证数据不被覆盖,每次写入数据时只在Excel的表末尾写入新数据。

二、具体实现

2.1 编写Python脚本

脚本的主要功能是启动一个对话框,然后将用户输入的信息保存到Excel文件中。其中星期几那一栏的数据,程序会根据运行日期自动填写。

首先,你需要安装一些必要的Python库——tkinter用于创建对话框,pandas用于操作Excel文件。你可以使用以下命令进行安装:

pip install tkinter pandas

 按下Windows键 + R,然后在打开的运行对话框中输入cmd点击确定,输入上述命令

 

然后,你需要创建一个Python脚本(.py),如下所示

注意:请在代码中设置好Excel文件的保存路径

请将 D:\download2.0\code\output.xlsx 替换为你想保存的实际路径

import tkinter as tk
from tkinter import messagebox
import pandas as pd
import os
from datetime import datetime

# 创建excel的列名
column_names = ['教师', '第几周', '星期几', '第几节', '设备故障', '建议']
# Excel文件名称,请设置你想要的保存路径
file_name = "D:\download2.0\code\output.xlsx"

# 创建对话框窗口
window = tk.Tk()
window.title('教学日志')
window.geometry('300x300')

# 创建标签和输入框
labels = [tk.Label(window, text=i).grid(row=idx, column=0) for idx, i in enumerate(column_names)]
# 用 Text 小部件替换第四和第五个输入框以允许多行输入
# entries = [tk.Entry(window) for _ in column_names]
entries = [tk.Entry(window), tk.Entry(window), tk.Entry(window), tk.Entry(window), tk.Text(window, width=30, height=5), tk.Text(window, width=30, height=7)]

# 英文星期名称到中文星期名称的映射
weekdays_en_to_ch = {
    'Monday': '星期一',
    'Tuesday': '星期二',
    'Wednesday': '星期三',
    'Thursday': '星期四',
    'Friday': '星期五',
    'Saturday': '星期六',
    'Sunday': '星期日',
}

entries[2].insert(0, weekdays_en_to_ch[datetime.today().strftime('%A')])  # 自动填写今天是星期几(中文)
# entries[3].config(width=60)  # 设置教学日志输入框的长度为60
# entries[4].config(width=60)  # 设置教学日志输入框的长度为60
for idx, entry in enumerate(entries):
    entry.grid(row=idx, column=1, sticky="w")  # 设置输入框左对齐

# 创建函数,当用户点击按钮时收集输入的信息然后添加到excel末尾
def submit():
    user_info = {n: e.get() for n, e in zip(column_names, entries)}
    user_df = pd.DataFrame([user_info])

    if os.path.isfile(file_name):  # 如果文件已存在,那么追加数据
        df = pd.read_excel(file_name)
        df = df.append(user_df, ignore_index=True)
    else:  # 如果文件不存在,那么创建新文件
        df = user_df

    df.to_excel(file_name, index=False)
    messagebox.showinfo('Message', '信息已成功保存到excel')
    window.destroy()  # 提交成功后退出程序

# 创建提交按钮
submit_button = tk.Button(window, text='提交', command=submit)
submit_button.grid(row=len(entries), column=1)

# 插入本地图片
# from PIL import Image, ImageTk
# try:
#     img_path = 'D:\download2.0\code\wechat.png'  # 更改为你的图片路径
#     image = Image.open(img_path)
#     photo = ImageTk.PhotoImage(image)
#     label_img = tk.Label(window, image=photo)
#     label_img.image = photo  # keep a reference to the image (Python will garbage collect it otherwise)
#     label_img.grid(row=0, column=2, rowspan=len(entries) + 1)  # let the image span all rows
# except IOError:
#     print('Image path is invalid. Please check the path and try again.')

window.mainloop()

这个脚本会创建一个包含六个输入框的窗口,用户可以在其中输入教师、第几周、星期几(自动获取)、第几节、设备故障和建议。点击保存按钮后,这些信息会被添加到Excel文件的最后一行。

 你可以使用记事本来创建这个文件,把上面的Python代码复制进去,然后将该文件后缀改成.py即可。

2.2 设置开机自启动脚本

在Windows上,你可以通过以下步骤将Python脚本设置为开机自启动:

1、首先,你需要创建一个批处理文件(.bat),该文件会在运行时执行你的Python脚本。你可以使用记事本来创建这个文件。在文件中,你需要输入以下命令:

@echo off
python C:\path\to\your\script.py

请将C:\path\to\your\script.py替换为你的Python脚本的实际路径。然后,保存这个文件,文件名可以自定义,但扩展名必须是.bat 

先在txt文件输入这些内容,再通过重命名把后缀改成bat。

此时,双击该批处理文件(.bat),如果成功跳出对话框弹窗,则说明代码可以正常运行。接着往下看👇

2、接下来,你需要将这个批处理文件(.bat)添加到Windows的启动文件夹。启动文件夹的位置通常是C:\Users\YourUserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

按下Windows键 + R,然后在打开的运行对话框中输入:

shell:startup

3、将你刚刚创建的批处理文件(.bat)复制或移动到启动文件夹。

完成以上步骤后,每次你的电脑启动时,Windows就会自动运行你的Python脚本

如果出现上述操作遇到问题请往下看👇

请注意,这个方法假设你已经将Python添加到了系统的PATH环境变量。如果没有,你需要在批处理文件(.bat)中使用完整的Python路径,如C:\Python37\python.exe

此外,如果你的电脑有多个用户账户,这个方法只会在你的用户账户登录时运行Python脚本。如果你希望在任何用户登录时都运行Python脚本,你需要将批处理文件添加到所有用户的启动文件夹,该文件夹的位置通常是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值