При установке новых программ, при нажатии правой кнопки мыши и выборе в меню создать можно выбрать создаваемый файл этой программой.
Например, после установки Office можно создать какой-нибудь Excel из контекстного меню Windows.
А некоторые программы вообще могут создать новый пункт, например, как на скриншоте появился пункт меню AMD.
Как моя программа может попасть в этот раздел если она имеет свой формат файлов?
Я подозреваю, что нужно прописаться куда-то в реестр и должен быть вызов метода Main с определенным аргументом по которому будет создан файл, но что-то не смог нагулить подробностей.
Вот это имею ввиду:
Нужную информацию проще всего найти в MSDN.
Для того, чтобы добавить обработчик New...
для зарегистрированного типа вашего приложения, вы должны зарегистрировать расширение, и для него установить в инсталляторе подключ ShellNew
. Если вы не делаете инсталлятор, то в ключе для вашего расширения (HKEY_CLASSES_ROOT\.расш
) укажите подключ ShellNew
. В нём создайте значение, которое указывает, как именно будет создаваться новый файл.
У вас есть 4 возможности.
Command
строкового типа (REG_SZ
, string
с точки зрения C#). Будет вызвана ваша команда, путь к которой указан вами в значении параметра.Data
бинарного типа (REG_BINARY
, byte[]
с точки зрения C#). Данные будут скопированы в новый файл.FileName
строкового типа. Поместите сюда имя файла, и он будет скопирован. Не забудьте добавить и сам файл. Если этот ключ указан, ключ Data
игнорируется.NullFile
(пустой). Создаётся пустой файл. Если этот ключ указан, ключи Data
и FileName
игнорируются.При указании имени файла в FileName
, вы можете либо указать полное имя (тогда оно используется), либо, кажется можно указать относительный путь. При этом поиск проводится сначала в %USERPROFILE%\Templates
текущего пользователя, затем в %ALLUSERPROFILE%\Templates
, а затем в %SYSTEMROOT%\ShellNew
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть лаунчер для игры (скачивает саму игру и запускает её с параметрами)Я хочу что-бы при обновлении лаунчер докачивал обновление,...
Добрый день, прошу совета с грамотным использованием событии в приложенияхУ меня был проект клиент-сервер на сокетах
В UserControl есть Textbox,в нём есть текстЭтот текст нужно передать в другой TextBox в новой форме
Директива UnityEngineAdvertisements не подтягивается к проекту