Этот вопрос закрыт для ответов, так как повторяет вопрос Как создать ярлык программы с "тихим" запуском?
NeMoMGE
@NeMoMGE
НЕ Джун в python

Как добавить программу в автозагрузки в regedit на python?

Пишу программу для управления пк. Хочу чтобы она сама добавлялась в автозагрузки. Пробовал с помощью библиотеки winreg
import winreg

path = winreg.HKEY_CURRENT_USER

run = winreg.OpenKeyEx(path, r'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run')

winreg.SetValueEx(run, 'NotePad', 0, winreg.REG_SZ, 'путь к файлу')

if run:
    winreg.CloseKey(run)

Ошибка
PermissionError: [WinError 5] Отказано в доступе

P.S. также пробовал создать ярлык и закинуть его в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Выдавало ту же ошибку. Как можно проверить есть ли в regedit моя программа чтобы ещё раз не добавлять её при след. запускам программы
  • Вопрос задан
  • 720 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Как создать ярлык программы с «тихим» запуском?
Там есть пример добавления в автозагрузку. Вам потребуется создать отдельный скрипт, который добавит Ваш основной скрипт в автозагрузку.

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"{program_name} добавлена в автозагрузку.")
        
    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"{program_name} уже добавлена в автозагрузку с путем: {program_path}")
        
    except FileNotFoundError:
        print(f"{program_name} не найдена в автозагрузке.")

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)

Важно! Добавление программы в автозагрузку без явного согласия пользователя может считаться вредоносным действием. А так же, осторожнее с реестром, можно одним запуском скрипта наломать много дров...
Ответ написан
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Написано же - отказано в доступе, что значит что не хватает прав. Запускайте приложение от имени администратора.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы