Я создал простую программу на C#, которая сохраняет данные в файл с пользовательским расширением. Файл может быть сохранен в любом месте пользовательского файла P C, и пользователь может каждый раз загружать разные файлы данных.
Я собрал программу в исполняемый файл и развернул ее с помощью стороннего установщика. Программа установки в основном упаковывает исполняемый файл и его зависимости в один исполняемый файл установки, который пользователь может запустить
Когда пользователь запускает установочный файл, начинается базовая установка c: принять лицензию, выбрать путь установки…
И программа и ее зависимости распаковываются по выбранному пути установки.
Теперь я хочу связать пользовательское расширение файла, которое я использую, чтобы моя программа всегда открывалась в моей программе.
Самым простым решением, которое я нашел для этого, было использование bat-файла, который запускается после установки моей программы (это обрабатывается сторонним установщиком, я просто добавляю bat-файл в качестве зависимости).
bat-файл в основном просто запускает команды Asso c и Ftype, например:
Assoc .MyExtension=MyProgram
Ftype MyProgram="Absolute Path" "%%1"
Но у меня есть две проблемы с этим:
1) Для этих команд требуется разрешение администратора, что проблема для моих клиентов.
2) Команде Ftype нужен полный путь к пути установки, но все, что мне нужно ve - относительный путь (который находится рядом с файлом bat), потому что путь установки определяется пользователем при его установке.
; tldr;
Мои вопросы:
1) Могу ли я выполнить sh это без разрешения администратора?
2) Как использовать Ftype с относительным путем.