如何在Windows启动时启动python文件?

2025-01-10 08:47:00
admin
原创
99
摘要:问题描述:我有一个 python 文件并且正在运行该文件。 如果 Windows 关闭并重新启动,我如何在每次 Windows 启动时运行该文件?解决方案 1:根据脚本执行的操作,您可以:将其打包成服务,然后安装将其添加到 Windows 注册表(HKCU\Software\Microsoft\Windows...

问题描述:

我有一个 python 文件并且正在运行该文件。

如果 Windows 关闭并重新启动,我如何在每次 Windows 启动时运行该文件?


解决方案 1:

根据脚本执行的操作,您可以:

  1. 将其打包成服务,然后安装

  2. 将其添加到 Windows 注册表(HKCU\Software\Microsoft\Windows\CurrentVersion\Run)

  3. 将其快捷方式添加到开始菜单的启动文件夹中 - 它的位置可能会随着操作系统版本的改变而改变,但安装程序总会有一些指令将快捷方式放入该文件夹中

  4. 使用 Windows 的任务计划程序,然后您可以在几种事件上设置任务,包括登录和启动时。

实际解决方案取决于您的需求以及脚本实际执行的操作。

以下是一些差异说明:

  • 解决方案 1 在计算机上启动脚本,而解决方案 2 和 3 在安装脚本的用户登录时启动脚本。

  • 还值得注意的是,#1 总是启动脚本,而#2 和#3 将仅在特定用户上启动脚本(我认为如果您使用默认用户,那么它将在每个人上启动,但我不确定细节)。

  • 解决方案 2 对用户来说更“隐蔽”,而解决方案 3 在禁用自动启动方面给用户留下了更多的控制权。

  • 最后,解决方案#1 需要管理权限,而其他两个可以由任何用户完成。

  • 解决方案 #4 是我最近发现的,非常简单。我注意到的唯一问题是 Python 脚本会导致出现一个小的命令窗口。

正如您所见,这一切都取决于您想要做什么;例如,如果它仅用于您的目的,我只需将其拖到启动文件夹中。

无论如何,最近我倾向于解决方案#4,因为它是最快和最直接的方法。

解决方案 2:

您只需将以下代码添加到脚本即可。不过,这仅适用于 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%sAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup' % USER_NAME
    with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
        bat_file.write(r'start "" "%s"' % file_path)

此函数将在启动文件夹中创建一个运行脚本的 bat 文件。

file_path是您想要在计算机打开时运行的文件的路径。

您可以将其留空以便将运行脚本添加到启动中。

解决方案 3:

  • 点击Win+R

  • 键入shell:startup

  • 拖放你的 Python 文件my_script.py

+ 如果你不需要控制台:将扩展名从更改`my_script.py`为`my_script.pyw`
+ 否则:创建`run_my_script.cmd`内容:`python path    oyourmy_script.py`

解决方案 4:

在以下启动目录中(至少在 Windows XP 上存在此路径):

C:Documents and SettingsAll UsersStart MenuProgramsStartup

为你的 Python 程序添加一个快捷方式。每次系统启动时它都会被执行。

解决方案 5:

还没有测试过,但我会创建一个包含“python yourfile.py”的批处理文件并将其放在自动启动文件夹中。

在 Windows 7 上,您可以在这里找到它:

%APPDATA%RoamingMicrosoftWindowsStart MenuProgramsStartup

解决方案 6:

您可以将 run_script.cmd 放在

C:Users/usernameAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

run_script.cmd 的内容

python path    oyourscript.py

解决方案 7:

import winreg

def set_autostart_registry(app_name, key_data=None, autostart: bool = True) -> bool:
    """
    Create/update/delete Windows autostart registry key

    ! Windows ONLY
    ! If the function fails, OSError is raised.

    :param app_name:    A string containing the name of the application name
    :param key_data:    A string that specifies the application path.
    :param autostart:   True - create/update autostart key / False - delete autostart key
    :return:            True - Success / False - Error, app name dont exist
    """

    with winreg.OpenKey(
            key=winreg.HKEY_CURRENT_USER,
            sub_key=r'SoftwareMicrosoftWindowsCurrentVersionRun',
            reserved=0,
            access=winreg.KEY_ALL_ACCESS,
    ) as key:
        try:
            if autostart:
                winreg.SetValueEx(key, app_name, 0, winreg.REG_SZ, key_data)
            else:
                winreg.DeleteValue(key, app_name)
        except OSError:
            return False
    return True


def check_autostart_registry(value_name):
    """
    Check Windows autostart registry status

    ! Windows ONLY
    ! If the function fails, OSError is raised.

    :param value_name:  A string containing the name of the application name
    :return: True - Exist / False - Not exist
    """

    with winreg.OpenKey(
            key=winreg.HKEY_CURRENT_USER,
            sub_key=r'SoftwareMicrosoftWindowsCurrentVersionRun',
            reserved=0,
            access=winreg.KEY_ALL_ACCESS,
    ) as key:
        idx = 0
        while idx < 1_000:     # Max 1.000 values
            try:
                key_name, _, _ = winreg.EnumValue(key, idx)
                if key_name == value_name:
                    return True
                idx += 1
            except OSError:
                break
    return False

创建自动启动:

set_autostart_registry('App name', r'C: estx.exe')

更新自动启动:

set_autostart_registry('App name', r'C: esty.exe')

删除自动启动:

set_autostart_registry('App name', autostart=False)

检查自动启动:

if check_autostart_registry('App name'):

解决方案 8:

尝试在“HKLM/SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce”中添加一个条目。右键单击 -> 新建 -> 字符串值 -> 添加文件路径

解决方案 9:

  1. 创建一个 exe 文件,我使用 pyinstaller“yourCode.py”

  2. 将执行文件添加到您的注册表项:
    https://cmatskas.com/configure-a-runonce-task-on-windows/

解决方案 10:

上面提到的所有方法都没有用,我都试过了,我会告诉你更简单的解决方案和 Windows 任务计划程序的替代方案

创建一个 .bat 文件,内容为“项目解释器的地址”、“带有脚本名称的 PYTHON 脚本的地址”

将此 bat 文件存储到窗口启动文件夹中(默认隐藏)仅供参考:要找到窗口启动文件夹,请按windos+r,然后输入shell:startup - 它将直接带您进入启动文件夹

将 bat 文件复制到那里,格式与以下 2 个地址相同,然后重新启动系统或关机并启动。

打开后20秒内代码会自动运行。

稍后再感谢我

解决方案 11:

import shutil
from os import path
import getpass
USER_NAME = getpass.getuser()
source_path = "hi.txt"
    
if path.exists(source_path):
    destination_path = "C://Users//%s//AppData//Roaming//Microsoft//Windows//Start Menu//Programs//Startup" % USER_NAME
    new_location = shutil.copy(source_path, destination_path)
    print("% s перемещен в указанное место,% s" % (source_path , new_location))
    print(destination_path)
else :
    print ("Файл не существует.")
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用