Автозапуск скрипта python в windows

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'):

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

Rimush

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


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

  • 6873 просмотра


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

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


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

dimonchik2013

Dimonchik

@dimonchik2013

non progredi est regredi

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

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

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

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

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


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

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


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


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

08 окт. 2023, в 12:15

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

09 окт. 2023, в 12:05

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

09 окт. 2023, в 12:02

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

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

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

Автозапуск скрипта Python

Автозапуск скрипта Python – это механизм, который позволяет запускать Python скрипты автоматически при запуске операционной системы или при определенных событиях. Это может быть полезно, когда вам нужно выполнить определенные задачи в фоновом режиме, без необходимости вручную запускать скрипт каждый раз.

В этой статье я расскажу вам о различных способах автозапуска скрипта Python в разных операционных системах, таких как Windows, MacOS и Linux.

1. Автозапуск скрипта Python в Windows.

В Windows существует несколько способов автозапуска скрипта Python. Один из них – использование планировщика задач. Чтобы настроить автозапуск с помощью планировщика задач, выполните следующие шаги:

— Шаг 1: Откройте планировщик задач в Windows. Вы можете сделать это, нажав правой кнопкой мыши по значку «Пуск» и выбрав «Планировщик задач».

— Шаг 2: Нажмите на «Создать задачу», чтобы создать новую задачу.

— Шаг 3: Во вкладке «Общие» введите имя задачи, описание и выберите операционную систему. Установите флажок «Выполнять с наивысшими привилегиями».

— Шаг 4: Во вкладке «Триггеры» нажмите «Новый», чтобы добавить новый триггер автозапуска. Выберите, когда вы хотите запускать скрипт (при запуске системы, при входе пользователя и т. д.) и настройте дополнительные параметры.

— Шаг 5: Во вкладке «Действия» нажмите «Новый», чтобы добавить новое действие. Выберите «Начать программу» и укажите путь к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта.

— Шаг 6: Нажмите «ОК», чтобы сохранить задачу. Теперь ваш скрипт Python будет автоматически запускаться при выполнении заданного триггера.

Еще один способ автозапуска скрипта Python в Windows – использование реестра. Чтобы настроить автозапуск с помощью реестра, выполните следующие шаги:

— Шаг 1: Откройте редактор реестра, нажав комбинацию клавиш Win+R и введя «regedit».

— Шаг 2: Перейдите к следующему пути: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

— Шаг 3: Создайте новый элемент, щелкнув правой кнопкой мыши и выбрав «Создать» -> «Строковое значение».

— Шаг 4: Введите имя элемента, например, «MyPythonScript», и в значении указывайте путь к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта.

— Шаг 5: Нажмите «ОК», чтобы сохранить изменения. Теперь ваш скрипт Python будет автоматически запускаться при запуске системы.

2. Автозапуск скрипта Python в MacOS.

В MacOS можно настроить автозапуск скрипта Python с помощью следующих способов:

— Шаг 1: Используйте «launchd» – встроенный демон, который управляет запуском и остановкой процессов и служб в MacOS.

Чтобы настроить автозапуск с помощью «launchd», создайте файл «<имя_сервиса>.plist» в папке «~/Library/LaunchAgents». В этом файле вы должны указать путь к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта. Затем выполните команду «launchctl load <имя_сервиса>.plist», чтобы загрузить сервис.

— Шаг 2: Используйте «cron» – планировщик задач в MacOS.

Чтобы настроить автозапуск с помощью «cron», откройте терминал и выполните команду «crontab -e», чтобы открыть файл crontab в текстовом редакторе. Затем добавьте строку с указанием времени запуска и пути к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта.

— Шаг 3: Используйте «Launch Control» – приложение с графическим интерфейсом для настройки автозапуска в MacOS.

Launch Control предоставляет простой и удобный способ настройки автозапуска программ в MacOS. Вы можете создать новое задание, указав путь к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта, а также настроить дополнительные параметры.

3. Автозапуск скрипта Python в Linux.

В Linux существует несколько способов автозапуска скрипта Python. Один из них – использование cron.

Чтобы настроить автозапуск с помощью cron, выполните следующие шаги:

— Шаг 1: Откройте терминал и выполните команду «crontab -e», чтобы открыть файл crontab в текстовом редакторе.

— Шаг 2: Добавьте строку с указанием времени запуска и пути к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта.

— Шаг 3: Сохраните и закройте файл. Теперь ваш скрипт Python будет автоматически запускаться по указанному расписанию.

Другой способ автозапуска скрипта Python в Linux – использование systemd.

Чтобы настроить автозапуск с помощью systemd, создайте новый файл «<имя_сервиса>.service» в папке «/etc/systemd/system». В этом файле вы должны указать путь к исполняемому файлу Python и аргументы командной строки для запуска вашего скрипта. Затем выполните команду «sudo systemctl enable <имя_сервиса>.service», чтобы включить службу.

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

  • Автозапуск программ windows 10 настройка
  • Автозапуск программ windows server 2012
  • Автозапуск программы в свернутом виде windows 10
  • Автозапуск программ windows 10 флешка
  • Автозапуск программ через реестр windows 10