Автозагрузка python скрипта при помощи скрипта?
Есть скрипт переведённый в exe’шник нужно закинуть его в авто-загрузку(Windows) при помощи скрипта в коде.
- Вопрос задан более трёх лет назад
- 1185 просмотров
1 комментарий
Простой 1 комментарий

Гугли «Работа с реестром»
Решения вопроса 1
irdaxirdaxirdax @irdaxirdaxirdax
from winreg import * # Путь в реестре key_my = OpenKey(HKEY_CURRENT_USER, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 0, KEY_ALL_ACCESS) # Установить скрипт в автозагрузку SetValueEx(key_my, 'script', 0, REG_SZ, r'') # Закрыть реестр CloseKey(key_my)
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
- +1 ещё
Почему при большом количестве строк async выдает ошибку?
- 1 подписчик
- 31 минуту назад
- 7 просмотров
Guides Book
Осуществить данную задачу можно двумя путями, первый состоит в том, чтобы записать значение в реестр (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run), здесь подробно описан данный метод. Однако при этом нам будет необходимо разрешение на запись в реестр, и чтобы его получить придется постараться.
Второй путь проще и не требует особых привилегий программе, для этого необходимо создать ярлык программы в C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup (путь для Windows 7).
Ниже показан код, позволяющий это сделать, при этом создается ярлык на исполняемый файл и сохраняется в выше указанную папку, и при желании его от туда можно убрать.
import winshell
import os
import sys
def set_startup():
try:
# get path and file name for application
startFile = os.path.abspath(sys.argv[0])
# get startup folder
startup=winshell.startup()
# create shortcut in startup folder
winshell.CreateShortcut (
Path=os.path.join (startup, "application.lnk"),
Target=startFile,
Icon=(startFile, 0),
Description="My application",
StartIn=os.path.abspath(None)
)
except :
pass
def remove_startup():
try:
startup=winshell.startup()
# remove shortcut from startup folder
if os.path.isfile(startup + '\\application.lnk'):
os.remove(startup + '\\application.lnk')
except :
pass
В коде использован пакет winshell, позволяющий получать доступ к специальным папкам Windows.
Как добавить программу в автозагрузки в regedit на python?
P.S. также пробовал создать ярлык и закинуть его в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Выдавало ту же ошибку. Как можно проверить есть ли в regedit моя программа чтобы ещё раз не добавлять её при след. запускам программы
- Вопрос задан 30 авг.
- 131 просмотр
Решения вопроса 1

Fullstack JS+React/Python, ML, боты, автоматизация
Как создать ярлык программы с «тихим» запуском?
Там есть пример добавления в автозагрузку. Вам потребуется создать отдельный скрипт, который добавит Ваш основной скрипт в автозагрузку.
UPD, Добавление программы в автозагрузки в regedit на python:
import winreg # Добавляем в автозагрузку def add_to_startup(program_name, executable_path): # Реестр registry_path = winreg.HKEY_CURRENT_USER key_path = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' try: # Открываем ключ реестра для записи with winreg.OpenKeyEx(registry_path, key_path, 0, winreg.KEY_WRITE) as registry_key: # Создание или обновление реестра winreg.SetValueEx(registry_key, program_name, 0, winreg.REG_SZ, executable_path) print(f" добавлена в автозагрузку.") except PermissionError: print("Нужны админские права.") # Проверка программы в автозагрузке def check_startup_entry(program_name): registry_path = winreg.HKEY_CURRENT_USER key_path = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' try: # Открываем ключ реестра для чтения with winreg.OpenKeyEx(registry_path, key_path, 0, winreg.KEY_READ) as registry_key: program_path, regtype = winreg.QueryValueEx(registry_key, program_name) print(f" уже добавлена в автозагрузку с путем: ") except FileNotFoundError: print(f" не найдена в автозагрузке.") if __name__ == "__main__": program_name = "GodzillaSoft" program_path = r"C:\path\GodzillaSoft.exe" check_startup_entry(program_name) add_to_startup(program_name, program_path)
Важно! Добавление программы в автозагрузку без явного согласия пользователя может считаться вредоносным действием. А так же, осторожнее с реестром, можно одним запуском скрипта наломать много дров.
Как добавить файл в авто загрузку используя python
Мне нужно сделать чтобы файл python сам добавился автозагрузку системы и я не знаю как это сделать я нашёл решения в интернете с редактором реестра, но по какой-то причине он у меня не сработал не выдавая никаких ошибок я также пытался просто переместить файл в папку Startup, но у меня это также не вышло мне выдавало данную ошибку: FileNotFoundError: [Errno 2] No such file or directory: ‘C:/Users/WN10/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup’ вот код:
import getpass USER_NAME = getpass.getuser() src = 'test.py' dest = f'C:/Users//AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup' shutil.move(src, dest)
Отслеживать
задан 18 фев в 21:09
25 6 6 бронзовых знаков
Возможный дубликат вопроса: автозапуск программы python
19 фев в 9:45
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ответ прост вам просто нужно использовать модуль shutil.copy вот простой код для этого:
username = getpass.getuser() filename = '' # путь до файла # либо используйте автоматическую функцию для получения пути до файла file_path = sys.argv[0] dir_name = f'C:/Users//AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/' shutil.copy(filename, dir_name)
Если мой ответ помог вам поставтье галочку и оцените его!