Скрипт python в автозагрузку windows

Adding a Python script to windows start-up basically means the python script will run as the windows boots up. This can be done by two step process –

Step #1: Adding script to windows Startup folder 
After the windows boots up it runs (equivalent to double-clicking) all the application present in its startup directory. 

Address: 

C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 
 

By default the AppData folder under the current_user is hidden so enable hidden files to get it and paste the shortcut of the script in the given address or the script itself. Also the .PY files default must be set to python IDE else the script may end up opening as a text instead of executing. 

  Step #2: Adding script to windows Registry 
This process can be risky if not done properly, it involves editing the windows registry key HKEY_CURRENT_USER from the python script itself. This registry contains the list of programs that must run once the user Login. just like few application which pops up when windows starts because the cause change in registry and add their application path to it.

Registry Path:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Below is the Python code : 

Python3

import winreg as reg

import os            

def AddToRegistry():

    pth = os.path.dirname(os.path.realpath(__file__))

    s_name="mYscript.py"    

    address=os.join(pth,s_name)

    key = HKEY_CURRENT_USER

    key_value = "Software\Microsoft\Windows\CurrentVersion\Run"

    open = reg.OpenKey(key,key_value,0,reg.KEY_ALL_ACCESS)

    reg.SetValueEx(open,"any_name",0,reg.REG_SZ,address)

    reg.CloseKey(open)

if __name__=="__main__":

    AddToRegistry()

Note: Further codes can be added to this script for the task to be performed at every startup and the script must be run as Administrator for the first time.
 

Last Updated :
14 Sep, 2021

Like Article

Save Article

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'Software\Microsoft\Windows\CurrentVersion\Run',
            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'Software\Microsoft\Windows\CurrentVersion\Run',
            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

Create autostart:

set_autostart_registry('App name', r'C:\test\x.exe')

Update autostart:

set_autostart_registry('App name', r'C:\test\y.exe')

Delete autostart:

set_autostart_registry('App name', autostart=False)

Check autostart:

if check_autostart_registry('App name'):

I have a .python script which I convert to .exe file trough autopy-to-exe command and I would like that coverted .exe file always running, so when computer restarts it automaticly starts.

So I want to create in .python script that.
I want to configure it so when somebody downloads .exe file and runs it, that .exe file will be in his startup so next time when he logs in that .exe will be working as well.

asked Apr 13, 2022 at 2:04

RedLine's user avatar

2

The simplest way to accomplish this is by placing it in your Startup directory. Windows will launch anything in there when someone signs in. You may also set this to run when any user logs in by using the «All Users» Startup folder.

This is the filepath for the Startup folder, for your user account:
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
and you can copy and paste that path right into Windows Explorer’s address bar to get there. Drop in the .exe and it will launch on the next login.

Reference for Startup folder

answered Apr 13, 2022 at 2:12

zodiac508's user avatar

3

Rimush

Как запустить python скрипт при старте Windows?


  • Вопрос задан

  • 6880 просмотров


Комментировать

Пригласить эксперта


Ответы на вопрос 3

dimonchik2013

Dimonchik

@dimonchik2013

non progredi est regredi

Панель управления — администрирование — планировщик заданий

все пути — абсолютные, в т.ч. к Питону

Как я понимаю, надо добавить файл (или ярлык) скрипта в эту папку:

C:\Documents and Settings\All Users\Start Menu\Programs\Startup

Источник инфы


Комментировать

pyinstaller`ом в exe, затем в автозапуск или через планировщик


Похожие вопросы


  • Показать ещё
    Загружается…

10 окт. 2023, в 15:44

5000 руб./за проект

10 окт. 2023, в 15:41

5000 руб./за проект

10 окт. 2023, в 15:37

3000 руб./за проект

Минуточку внимания

Python является одним из самых популярных языков программирования на сегодняшний день. И если вы хотите запускать свой скрипт на Python каждый раз при запуске компьютера, то вы можете добавить его в автозагрузку. В этой статье мы рассмотрим несколько простых способов добавления скрипта на Python в автозагрузку Windows и Linux.

Добавление скрипта в автозагрузку Windows

Способ #1: Использование Панели управления

  1. Откройте «Панель управления» и выберите «Администрирование».
  2. Дважды щелкните «Задачи планировщика».
  3. Выберите «Создать задачу».
  4. Введите название задачи и описание.
  5. Выберите вкладку «Триггеры» и нажмите на кнопку «Новый».
  6. Выберите «При входе в систему» для «Начать задачу».
  7. Выберите вкладку «Действия» и нажмите на кнопку «Новый».
  8. Выберите «Запуск программы» и введите путь к исполняемому файлу Python и к скрипту.
  9. Нажмите кнопку «OK» и наслаждайтесь результатом!

Способ #2: Использование командной строки

  1. Нажмите «Win + R», чтобы открыть «Выполнить» и введите «shell:startup», чтобы открыть папку автозагрузки.
  2. Нажмите правой кнопкой мыши на свободное место в папке автозагрузки и выберите «Открыть окно команд».
  3. В командной строке введите notepad.exe script.pyw (где script.pyw — это ваш скрипт на Python) и нажмите клавишу Enter.
  4. Сохраните файл как startup.bat и закройте блокнот.
  5. Нажмите «Win + R», чтобы открыть «Выполнить» и введите «shell:startup», чтобы открыть папку автозагрузки.
  6. Нажмите правой кнопкой мыши на файл startup.bat и выберите «Создать ярлык».
  7. Переместите ярлык в другую папку (такую как рабочий стол).
  8. Нажмите правой кнопкой мыши на ярлык и выберите «Свойства».
  9. Добавьте pythonw.exe перед путем к вашему скрипту на вкладке «Ярлык».
  10. Нажмите кнопку «OK» и наслаждайтесь результатом!

Добавление скрипта в автозагрузку Linux

Способ #1: Использование crontab

  1. Откройте терминал и введите crontab -e.
  2. Добавьте следующие строки в конец файла:
@reboot python /path/to/your/script.py

(где /path/to/your/script.py — это путь к вашему скрипту на Python)

  1. Сохраните файл и закройте его.
  2. Перезагрузите вашу систему и наслаждайтесь результатом!

Способ #2: Использование systemd

  1. Откройте терминал и введите sudo nano /etc/systemd/system/startup.service.
  2. Добавьте следующие строки:
[Unit]
Description=My Startup Script

[Service]
Type=simple
ExecStart=/usr/bin/python /path/to/your/script.py

[Install]
WantedBy=multi-user.target

(где /path/to/your/script.py — это путь к вашему скрипту на Python)

  1. Сохраните файл и закройте его.
  2. Введите sudo systemctl daemon-reload.
  3. Запустите sudo systemctl enable startup.service.
  4. Перезагрузите вашу систему и наслаждайтесь результатом!

Выводы

Как вы видите, добавление скрипта на Python в автозагрузку Windows и Linux не такое уж и сложное дело. Используйте эти способы и экономьте свое время, запуская свои скрипты на автопилоте!

  • Скрипт для активации windows 11
  • Скрипт для автозапуска программы в windows
  • Скрипт бэкапа postgresql в windows
  • Скрипт python как служба windows
  • Скриншот экрана компьютера windows 10 сочетание клавиш на клавиатуре компьютера