吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1077|回复: 14
收起左侧

[Python 原创] Python+TK 添加删除开机启动项

[复制链接]
dfydfydfy896 发表于 2024-8-6 15:01
本帖最后由 dfydfydfy896 于 2024-8-6 22:10 编辑

网上想找个几十K绿色软件没找到,于是想借助GPT自己写一个吧。
py代码是很少,但打包后也要10M了,聊胜于无,胜在干净。

之前的版本有个路径斜杠符号反了的小错误,需要修改下。
        file_path = os.path.normpath(file_path)  # 规范化路径
        filename = os.path.basename(file_path)

[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import filedialog, messagebox
import winreg
import os

# 获取当前用户的启动项注册表路径
startup_reg_path = r"Software\Microsoft\Windows\CurrentVersion\Run"
startup_reg_key = winreg.HKEY_CURRENT_USER

def get_startup_items():
    try:
        key = winreg.OpenKey(startup_reg_key, startup_reg_path, 0, winreg.KEY_READ)
        startup_items = []
        index = 0
        while True:
            try:
                name, value, _ = winreg.EnumValue(key, index)
                startup_items.append(name)  # 存储启动项的名称而非值
                index += 1
            except OSError:
                break
        winreg.CloseKey(key)
        return startup_items
    except FileNotFoundError:
        return []

def add_startup_item(file_path):
    try:
        file_path = os.path.normpath(file_path)  # 规范化路径
        filename = os.path.basename(file_path)
        key = winreg.OpenKey(startup_reg_key, startup_reg_path, 0, winreg.KEY_WRITE)
        winreg.SetValueEx(key, filename, 0, winreg.REG_SZ, file_path)
        winreg.CloseKey(key)
        messagebox.showinfo("添加启动项", f"已成功添加启动项: {filename}")
    except Exception as e:
        messagebox.showerror("添加启动项失败", f"添加启动项时出错: {str(e)}")

def remove_startup_item(item_name):
    try:
        key = winreg.OpenKey(startup_reg_key, startup_reg_path, 0, winreg.KEY_WRITE)
        winreg.DeleteValue(key, item_name)
        winreg.CloseKey(key)
        messagebox.showinfo("删除启动项", f"已成功删除启动项: {item_name}")
    except FileNotFoundError:
        messagebox.showwarning("删除启动项", f"启动项 '{item_name}' 不存在")
    except Exception as e:
        messagebox.showerror("删除启动项失败", f"删除启动项时出错: {str(e)}")

def select_file():
    file_path = filedialog.askopenfilename(filetypes=[("Executable files", "*.exe")])
    if file_path:
        add_startup_item(file_path)
        update_listbox()

def update_listbox():
    startup_items = get_startup_items()
    listbox.delete(0, tk.END)
    for item in startup_items:
        listbox.insert(tk.END, item)

def refresh_listbox():
    update_listbox()

def delete_selected_item():
    selected_index = listbox.curselection()
    if selected_index:
        selected_item = listbox.get(selected_index)
        remove_startup_item(selected_item)
        update_listbox()

# 创建Tkinter界面
root = tk.Tk()
root.title("启动项管理程序")

frame_top = tk.Frame(root)
frame_top.pack(pady=10)

add_button = tk.Button(frame_top, text="添加启动项", command=select_file)
add_button.pack(side=tk.LEFT, padx=10)

remove_button = tk.Button(frame_top, text="删除选中启动项", command=delete_selected_item)
remove_button.pack(side=tk.LEFT)

refresh_button = tk.Button(frame_top, text="手动刷新", command=refresh_listbox)
refresh_button.pack(side=tk.LEFT, padx=10)

frame_bottom = tk.Frame(root)
frame_bottom.pack(pady=20)

listbox = tk.Listbox(frame_bottom, width=50)
listbox.pack()

update_listbox()

root.mainloop()

打包成单一exe

pyinstaller --onefile --noconsole --paths=C:\python\tcl\tcl8,C:\python\tcl\tcl8.6,C:\python\tcl\tk8.6 show.py

图片.png

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
long8586 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

long8586 发表于 2024-8-6 20:53
kkk013 发表于 2024-8-6 17:08
为啥子,不直接在任务管理器的启动栏里操作

还是感谢分享

这个吧,不同的系统,不太一样,关键是对系统设置不太熟练的人来说,取消一个启动项真的很难得
JSX 发表于 2024-8-6 17:06
kkk013 发表于 2024-8-6 17:08
为啥子,不直接在任务管理器的启动栏里操作

还是感谢分享
jun269 发表于 2024-8-6 17:32
python的强大啊
lipingtao 发表于 2024-8-6 17:49
学习啦,不错
sztoplon 发表于 2024-8-6 18:18
感谢分享,学习一下
kangta520 发表于 2024-8-6 18:44
本帖最后由 kangta520 于 2024-8-6 18:46 编辑

谢谢分享,我用customtkinter也写了一个
PixPin_2024-08-06_18-46-02.png
Mfjhkj 发表于 2024-8-6 19:45
感谢分享,正好学习一下新的技术
侃遍天下无二人 发表于 2024-8-6 23:57
直接用火绒的启动项管理就行了,你这个都快有人家火绒一半的体积了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表