Python实现开机自启代码及取消(通过修改注册表)

该文章介绍了如何使用Python的sys、os和winreg模块来管理Windows系统的开机自启动项目。提供了两个函数,add_to_startup()用于将程序添加到开机启动,remove_from_startup()则用于从启动项中移除。文章包含了详细代码示例和函数实现步骤,并解释了winreg.OpenKey()函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,先上代码

代码部分

import sys
import os
import winreg
def add_to_startup(name,file_path=""):
	#By IvanHanloth
    if file_path == "":
        file_path = os.path.realpath(sys.argv[0])
    auth="IvanHanloth"
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run",winreg.KEY_SET_VALUE, winreg.KEY_ALL_ACCESS|winreg.KEY_WRITE|winreg.KEY_CREATE_SUB_KEY)#By IvanHanloth
    winreg.SetValueEx(key, name, 0, winreg.REG_SZ, file_path)
    winreg.CloseKey(key)

def remove_from_startup(name):
    auth="IvanHanloth"
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", winreg.KEY_SET_VALUE, winreg.KEY_ALL_ACCESS|winreg.KEY_WRITE|winreg.KEY_CREATE_SUB_KEY)#By IvanHanloth
    try:
        winreg.DeleteValue(key, name)
    except FileNotFoundError:
        print(f"{name} not found in startup.")
    else:
        print(f"{name} removed from startup.")
    winreg.CloseKey(key)

使用说明

基于sys、os、winreg模块实现的程序开机自启,其中add_to_startup()函数用于添加自启动项,remove_from_startup()函数用于删除启动项

依赖模块

无需自行安装额外模块
自带模块:sys、os、winreg

参数说明

name(str):添加到注册表中的键值,需要具有一定标识性、独特性,避免与其他键重复,推荐使用程序名称
file_path(str)(可选):需要添加到启动项的文件地址,不填写默认为当前脚本所在地址

使用实例(For 可执行文件)

#注意!演示默认你已经引入了模块和函数

#添加当前文件至启动项
add_to_startup("MyApp")

#添加其他文件至启动项
add_to_startup("AnotherApp","D:\path\another.exe")

#删除第一次添加的启动项
remove_from_startup("MyApp")

#删除第二次添加的启动项
remove_from_startup("AnotherApp")

使用实例(For Python文件)

#注意!演示默认你已经引入了模块和函数

#添加当前py文件至启动项
add_to_startup("MyPythonFile",sys.executable+os.path.realpath(sys.argv[0]))

#添加其他py文件至启动项
add_to_startup("AnotherPythonFile",sys.executable+"D:\path\another.py")

#删除第一次添加的启动项
remove_from_startup("MyPythonFile")

#删除第二次添加的启动项
remove_from_startup("AnotherPythonFile")

函数实现步骤&winreg.OpenKey()函数详解

不告诉你,被我吃掉了
来作者博客看>>
https://blog.ivan-hanloth.cn/index.php/archives/593/

### 如何在 Windows 10 中禁用或管理开机自启动程序 #### 使用任务管理器管理动项 对于希望快速便捷地管理动项的用户来说,任务管理器是一个非常实用的选择。当需要取消某个程序的开机自启动时,可以通过任务管理器来完成这一操作。具体而言,在任务管理器中的“动”选项卡里列出了所有已配置为随系统动而运行的应用程序列表[^1]。 #### 利用 msconfig 工具控制动项目 另一种途径是借助 `msconfig` 实用工具来进行更深入细致化的调整。按下组合键 “Win+R”,调出运行命令框;接着输入 `msconfig` 并执行该指令,则会出现一个包含多个标签页的新窗口。其中,“动”一栏提供了查看以及修改哪些应用程序被允许于计算机每次重之际自动激活的功能[^4]。 #### Python 脚本辅助管理注册表内的动条目 除了上述两种图形界面下的解决方案外,还可以采用编程方式自动化处理这类需求——即利用像Python这样的脚本来读取、编辑位于Windows操作系统核心位置之一的注册表数据结构里的相应字段值,从而达到精准调控目的的同时也增加了灵活性与可定制化程度[^3]。 ```python import winreg as reg def disable_startup_app(app_name): key = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' try: registry_key = reg.OpenKey(reg.HKEY_CURRENT_USER, key, 0, reg.KEY_ALL_ACCESS) reg.DeleteValue(registry_key, app_name) reg.CloseKey(registry_key) print(f"{app_name} has been successfully disabled from startup.") except Exception as e: print(e) disable_startup_app('ExampleApp') ``` 此段代码展示了怎样通过移除指定名称 (`app_name`) 的键值对来阻止某款应用成为默认开机动的一部分。当然,在实际部署前应当充分测试以确保不会误删重要服务或造成其他不良影响。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值