Задать вопрос
saimon108
@saimon108
Frontend, Gamer, Bookworm

Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

Пишу свой первый скрипт на питоне и хочу сделать установку его в виде программы вызываемой через контекстное меню windows.
Условно: пользователь запустил установщик, программа установилась, в контекстное меню windows добавился пункт вызывающий действие моего скрипта внутри папки в которой было вызвано контекстное меню.
Вопросы:
1) Какой использовать софт для сборки установщика? Я сейчас пробую WiX Toolset, но не уверен, что он обладает необходимым функционалом.
2) Как добавить в процесс создания установочного файла добавление пункта в контекстное меню Windows?
3) Как правильно сделать что бы скрипт вызывался именно в папке где будет клик в контекстном меню?
Текущий вид скрипта(в данный момент сам функционал не закончен):
import os

def getFilenameWithoutExtension (someFilename):
    filename, file_extension = os.path.splitext(someFilename)
    return filename

def getSingles():
    files = list(filter(os.path.isfile, os.listdir()))
    singles = []
    for file in files:
        matchCount = 0
        filenameWithoutExtension = getFilenameWithoutExtension(file)
        for anotherFile in files:
            if file != anotherFile:
                anotherFileWithoutExtension = getFilenameWithoutExtension(anotherFile)
                if filenameWithoutExtension == anotherFileWithoutExtension :
                    matchCount += 1
        if matchCount == 0 :
            singles.append(file)
    return singles

print('Все файлы: ', os.listdir())
print('Одиночные файлы: ', getSingles())
  • Вопрос задан
  • 365 просмотров
Подписаться 1 Простой 16 комментариев
Решения вопроса 1
ScriptKiddo
@ScriptKiddo
1) Можно использовать NSIS
2) https://stackoverflow.com/a/29769228 Добавление ключа в реестр через NSIS https://nsis.sourceforge.io/Reading_and_Writing_th...
3) Можно попробовать сделать как тут https://stackoverflow.com/a/60977397

Как парсить аргументы на Python - описано здесь https://docs.python.org/3/library/argparse.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы