如何在Windows启动时运行Python文件?

95 投票
11 回答
185392 浏览
提问于 2025-04-16 08:30

我有一个Python文件,我正在运行这个文件。

如果Windows关机后再启动,我该如何让这个文件在每次Windows开机时自动运行呢?

11 个回答

20
  • 点击 Win+R

  • 输入 shell:startup 然后按回车

  • 把你的 Python 文件 my_script.py 拖到这个文件夹里

    • 如果你不需要控制台窗口:把文件名从 my_script.py 改成 my_script.pyw

    • 如果需要控制台窗口:创建一个 run_my_script.cmd 文件,里面写上:python path\to\your\my_script.py

27

你只需要在你的脚本里加上下面的代码。不过,这个方法只适用于Windows系统!:

import getpass
import os
USER_NAME = getpass.getuser()


def add_to_startup(file_path=""):
    if file_path == "":
        file_path = os.path.dirname(os.path.realpath(__file__))
    bat_path = r'C:\Users\%s\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' % USER_NAME
    with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
        bat_file.write(r'start "" "%s"' % file_path)

这个功能会在启动文件夹里创建一个批处理文件,这个文件会在你的电脑开机时运行你的脚本。

file_path是你希望在电脑开机时运行的文件的路径。

如果你想让正在运行的脚本也能开机启动,可以把这个路径留空。

81

根据脚本的功能,你可以选择以下几种方法:

  1. 把它打包成一个服务,然后安装上去。
  2. 把它添加到Windows注册表中(HKCU\Software\Microsoft\Windows\CurrentVersion\Run)。
  3. 在开始菜单的启动文件夹里添加一个快捷方式——这个文件夹的位置可能会随着操作系统版本的不同而变化,但安装程序通常会有说明,告诉你怎么把快捷方式放到这个文件夹里。
  4. 使用Windows的任务调度器,这样你可以设置在多种事件下运行这个任务,包括登录和开机时。

具体的解决方案取决于你的需求,以及脚本的实际功能。
以下是一些不同方案的说明:

  • 方案#1是在电脑开机时启动脚本,而方案#2和#3是在安装了它的用户登录时启动。
  • 值得注意的是,方案#1总是会启动脚本,而方案#2和#3只会在特定用户下启动(我觉得如果使用默认用户的话,可能会在所有人登录时启动,但具体情况我不太确定)。
  • 方案#2对用户来说有点“隐蔽”,而方案#3则让用户在禁用自动启动方面有更多的控制权。
  • 最后,方案#1需要管理员权限,而另外两个方案任何用户都可以操作。
  • 方案#4是我最近发现的,操作起来非常简单。唯一的问题是,Python脚本会导致一个小的命令窗口出现。

如你所见,这一切都取决于你想做什么;比如,如果只是为了自己使用,我会直接把它拖到启动文件夹里。

总之,最近我倾向于方案#4,因为这是最快、最简单的方法。

撰写回答