Python. Как добавить свое приложение в список программ Windows

Пишу приложение на Python. На этапе написания инсталятора возник вопрос : Как добавить приложение в список программ Windows?


Ответы (3 шт):

Автор решения: Михаил Ильин

Чтобы добавить ваше приложение в список программ Windows, вам нужно создать соответствующую запись в реестре операционной системы. Это можно сделать с помощью Python, используя модуль winreg. Вот пример кода, который позволит вам добавить запись в реестр:

import winreg

# Открываем ключ реестра для добавления информации о вашем приложении

key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName")

# Задаем значения для вашего приложения

winreg.SetValueEx(key, "DisplayName", 0, winreg.REG_SZ, "Your App Name")
winreg.SetValueEx(key, "DisplayIcon", 0, winreg.REG_SZ, r"C:\Path\To\Your\Icon.ico")
winreg.SetValueEx(key, "UninstallString", 0, winreg.REG_SZ, r"C:\Path\To\Your\App\Uninstall.exe")
winreg.SetValueEx(key, "InstallLocation", 0, winreg.REG_SZ, r"C:\Path\To\Your\App")
winreg.SetValueEx(key, "Publisher", 0, winreg.REG_SZ, "Your Publisher Name")
winreg.SetValueEx(key, "Version", 0, winreg.REG_SZ, "1.0")
winreg.SetValueEx(key, "URLInfoAbout", 0, winreg.REG_SZ, "http://www.yourappwebsite.com")

# Закрываем ключ реестра

winreg.CloseKey(key)

Поменяйте значения на собственные и все получится.

→ Ссылка
Автор решения: Эникейщик

Ссылки на программы в меню Пуск лежат в следующих папках:

общие для всех пользователей:

C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

и

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Индивидуальные для отдельного пользователя:

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

Достаточно положить в одну из этих папок ярлык на программу и он окажется в меню Пуск.

→ Ссылка
Автор решения: Віктор

Всем спасибо за ответы. С реестром ответ исчерпывающий, единственное добавлю чтение из реестра :

    import winreg

    path = 
      "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Ваша программа"

    key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, path)

    keyname = winreg.QueryValueEx(key, "InstallLocation") 
    keyname1 = winreg.QueryValueEx(key, "DisplayVersion") 

    winreg.CloseKey(key)

    print(keyname)
    print(keyname1)

А вот с постановкой иконки на стол и внесением у список программ кнопки ПУСК есть проблемы. Там нужны права администратора. Решил так :

    # иконка на рабочий стол
    from pyshortcuts import make_shortcut

    make_shortcut('Ваша прога.exe', name='Ваша программа', 
                 icon='icon.ico')

    # Добавление в список программ кнопки ПУСК
    # Получаем права админа и перезагружаем приложение
    
    import ctypes
    import sys
    import winshell

    def is_admin():
        try:
            return ctypes.windll.shell32.IsUserAnAdmin()
        except:
            return False

    if is_admin():

        winshell.CreateShortcut(
        Path="C:/ProgramData/Microsoft/Windows/Start 
              Menu/Programs/Ваша программа.lnk",
        Target="Ваша программа.exe",
        Icon=("Ваша программа.ico", 0),
        Description="Ваша программа")

    else:
        ctypes.windll.shell32.ShellExecuteW(
             None, "runas", sys.executable, " ".join(sys.argv), None, 1
        )

Материалы откопаны на просторах этого форума.

→ Ссылка