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
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
3
Как запустить python скрипт при старте Windows?
-
Вопрос задан
-
6880 просмотров
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@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: Использование Панели управления
- Откройте «Панель управления» и выберите «Администрирование».
- Дважды щелкните «Задачи планировщика».
- Выберите «Создать задачу».
- Введите название задачи и описание.
- Выберите вкладку «Триггеры» и нажмите на кнопку «Новый».
- Выберите «При входе в систему» для «Начать задачу».
- Выберите вкладку «Действия» и нажмите на кнопку «Новый».
- Выберите «Запуск программы» и введите путь к исполняемому файлу Python и к скрипту.
- Нажмите кнопку «OK» и наслаждайтесь результатом!
Способ #2: Использование командной строки
- Нажмите «Win + R», чтобы открыть «Выполнить» и введите «shell:startup», чтобы открыть папку автозагрузки.
- Нажмите правой кнопкой мыши на свободное место в папке автозагрузки и выберите «Открыть окно команд».
- В командной строке введите
notepad.exe script.pyw
(гдеscript.pyw
— это ваш скрипт на Python) и нажмите клавишу Enter. - Сохраните файл как
startup.bat
и закройте блокнот. - Нажмите «Win + R», чтобы открыть «Выполнить» и введите «shell:startup», чтобы открыть папку автозагрузки.
- Нажмите правой кнопкой мыши на файл
startup.bat
и выберите «Создать ярлык». - Переместите ярлык в другую папку (такую как рабочий стол).
- Нажмите правой кнопкой мыши на ярлык и выберите «Свойства».
- Добавьте
pythonw.exe
перед путем к вашему скрипту на вкладке «Ярлык». - Нажмите кнопку «OK» и наслаждайтесь результатом!
Добавление скрипта в автозагрузку Linux
Способ #1: Использование crontab
- Откройте терминал и введите
crontab -e
. - Добавьте следующие строки в конец файла:
@reboot python /path/to/your/script.py
(где /path/to/your/script.py
— это путь к вашему скрипту на Python)
- Сохраните файл и закройте его.
- Перезагрузите вашу систему и наслаждайтесь результатом!
Способ #2: Использование systemd
- Откройте терминал и введите
sudo nano /etc/systemd/system/startup.service
. - Добавьте следующие строки:
[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)
- Сохраните файл и закройте его.
- Введите
sudo systemctl daemon-reload
. - Запустите
sudo systemctl enable startup.service
. - Перезагрузите вашу систему и наслаждайтесь результатом!
Выводы
Как вы видите, добавление скрипта на Python в автозагрузку Windows и Linux не такое уж и сложное дело. Используйте эти способы и экономьте свое время, запуская свои скрипты на автопилоте!