Как добавить файл в авто загрузку используя python

Рейтинг: 1Ответов: 2Опубликовано: 19.02.2023

Мне нужно сделать чтобы файл 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/{USER_NAME}/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup'
 
shutil.move(src, dest)

Ответы

▲ 2Принят

Ответ прост вам просто нужно использовать модуль shutil.copy вот простой код для этого:

username = getpass.getuser()
filename = '' # путь до файла
# либо используйте автоматическую функцию для получения пути до файла file_path = sys.argv[0]
dir_name = f'C:/Users/{username}/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/'
shutil.copy(filename, dir_name)
▲ 2

Можно сделать это через реестр, используя библиотеку winreg (ее устанавливать не надо):

import winreg
import os

# Определить имя и путь к файлу скрипта
script_name = "my_script.py"
script_path = os.path.abspath(script_name)

# Открыть раздел реестра, отвечающий за автозагрузку
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
                     "Software\Microsoft\Windows\CurrentVersion\Run",
                     0, winreg.KEY_SET_VALUE)

# Добавить значение в раздел реестра
winreg.SetValueEx(key, "MyScript", 0, winreg.REG_SZ,
                  script_path)  # MyScript - это имя параметра реестра, называйте как хотите

# Закрыть раздел реестра
winreg.CloseKey(key)