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
)
Материалы откопаны на просторах этого форума.