Как связать расширение с программой

Я развертываю небольшой инструмент преобразования в некоторых системах и хочу, чтобы пользователи могли запускать его, щелкнув правой кнопкой мыши. Open with меню. Но я не хочу менять программу, которую пользователи по умолчанию связывают с этим типом файла. Легко связать расширение/тип файла с программой, но как это сделать (конечно, программно) без изменения программы по умолчанию?

задан 02 июн ’10, 05:06

5 ответы

Установка следующих ключей работала для меня:

key HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths/: «» = key HKCR/Applications//SupportedTypes: = «» key HKCR/: «» = key HKCR//OpenWithList/ key HKCR//OpenWithList/ key HKCR/SystemFileAssociations//OpenWithList/ delete key and subkey at HKCU/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/fileExts/
Создан 06 июн.

  1. Открыть regedit
  2. Идти к HKEY_CLASSES_ROOTyour_classShell
  3. Добавьте новый ключ и дайте ему имя
  4. Редактировать (Default) значение этого ключа и вставьте текст, который вы хотите отобразить в контекстном меню
  5. Добавьте новый ключ с именем Command под вашим вновь созданным ключом
  6. Редактировать (Default) значение этого ключа и вставьте команду, которую вы хотите выполнить
  7. Наслаждайтесь!

Это то, что я пробовал раньше, но в моем случае этого недостаточно; ассоциация по умолчанию была сделана вручную в проводнике, и он почему-то блокирует эту работу с файлами. — Чарльз Б

Как расширить диск если неактивна кнопка “Расширить том” в Управлении дисками в Windows 11

В диалоговом окне Windows «Типы файлов» вы можете нажать «Дополнительно» для вашего типа файла и создать пользовательское действие, привязанное к вашему приложению.

Возможно, вы также можете найти способ сделать это программным способом или, по крайней мере, создать файл .REG с эквивалентными параметрами реестра.

Да, я хочу сделать это программно — Чарльз Б

Читайте также:
Программа чтобы обрезать музыку на компьютер

Вы можете использовать функции реестра Win32 — msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx — для создания/изменения соответствующих записей реестра — ob1

Я добился правильной АССОЦИАЦИИ ФАЙЛОВ, используя эти команды cmd. (просто пример):

(лучше в файл .bat положить)

Создан 05 июля ’13, 11:07

вот рабочий пример для XP, добавляющий параметр командной строки в папки. Создайте файл .reg

Редактор реестра Windows версии 5.00

Это сделает приложение по умолчанию, хотя я не хочу менять программу по умолчанию. — Чарльз Б

Не на XP это не так. Он просто добавляет опцию командной строки — Удан

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками windows file-association or задайте свой вопрос.

Источник: stackovergo.com

крутая функция windows 7

Связываем тип файла (расширение) с нашим приложением

Большинство приложений хранят свои данные на диске в виде файлов и частенько необходимо быстро просмотреть эти данные. Можно конечно сперва запустить приложение, а потом из него открыть файл с данными, но можно сделать это гораздо быстрее, кликнув на файле в Проводнике.

Для этого достаточно придумать Ваше собственное расширение для файла данных, и связать его (расширение) с Вашим приложением. Обычно для этого достаточно добавить два ключа в реестр в раздел HKEY_CLASSES_ROOT. Допустим мы решили назвать наше расширение как «.ext», тогда первый ключ, который необходимо добавить — это собственно само расширение:

и установить значение строки «default» данного ключа в «internal name» для Вашего типа файла — например MyApp.Document:

HKEY_CLASSES_ROOT
.ext
Default = «MyApp.Document»

Затем необходимо создать другой ключ с именем:

Создайте в нём подключ с названием «shell», далее в shell создайте подключ «open», а в open создайте подключ «command». Значение default в ключе command — это расположение и имя Вашего приложения, заканчивающегося на «%1», которое представляет параметр, в котором приложению будет передаваться имя файла данных:

Читайте также:
Методы принятия решений программа

HKEY_CLASSES_ROOT
MyApp.Document
shell
open
command
Default = «C:myappmyapp.exe %1»

Думаю, что в любом компиляторе проделать данную процедуру программно не составит труда.

Источник: sources.ru

Как связать расширение файла с текущим исполняемым файлом в C #

Я хотел бы связать расширение файла с текущим исполняемым файлом в С#. Таким образом, когда пользователь нажимает на файл впоследствии в проводнике, он запускает мой исполняемый файл с данным файлом в качестве первого аргумента. В идеале он также установил значок для указанных расширений файла на значок моего исполняемого файла. Спасибо всем.

X-Cubed 16 сен. 2008, в 08:31
Поделиться
White Dragon 16 сен. 2008, в 06:24

На этот вопрос подробно ответили в следующем потоке переполнения стека . Мы использовали эту реализацию, и она прекрасно работает. Он также с открытым исходным кодом и интегрируется в MSBuild.

Blake Niemyjski 02 май 2012, в 14:40
На этот вопрос подробно ответили в следующей теме: stackoverflow.com/questions/2993118/…
Blake Niemyjski 02 май 2012, в 14:40
Dean Kuga 22 авг. 2012, в 18:28

Я ссылался на сообщение о переполнении стека, в котором содержится полезная информация о wix, связанная с расширением файла через Wix Installer.

Blake Niemyjski 27 авг. 2012, в 18:09

Большая проблема с примером codeproject заключается в том, что он пишет в HKEY_CLASSES_ROOT вместо того, чтобы дать вам выбор между этим и HKEY_CURRENT_USER, иначе использовал бы его.

Kelly Elton 29 окт. 2013, в 04:11
Показать ещё 4 комментария
Поделиться:

9 ответов

Не существует API-интерфейса .Net для непосредственного управления ассоциациями файлов, но вы можете использовать классы реестра для чтения и записи ключей, которые вам нужны.

Вам нужно создать ключ под HKEY_CLASSES_ROOT с именем, установленным для расширения вашего файла (например: «.txt» ). Задайте значение по умолчанию этого ключа уникальному имени для вашего типа файла, например «Acme.TextFile». Затем создайте еще один ключ под HKEY_CLASSES_ROOT с именем, установленным в «Acme.TextFile». Добавьте подраздел «DefaultIcon» и установите значение по умолчанию для файла, содержащего значок, который вы хотите использовать для этого типа файла. Добавьте другого брата, называемого «оболочка». Под клавишей «shell» добавьте ключ для каждого действия, которое вы хотите получить через контекстное меню «Проводник», установив значение по умолчанию для каждой клавиши на путь к исполняемому файлу, а затем пробел и «% 1», чтобы представить путь к выбранному файлу.

Читайте также:
Программа для диабло 2 чтобы делать вещи

Например, здесь пример файла реестра для создания связи между TXT файлами и EmEditor:

X-Cubed 16 сен. 2008, в 07:41
Поделиться

Есть ли способ передать некоторые аргументы в exe (в данном случае C: Program Files EmEditor EMEDITOR.EXE)?

Apparao 20 янв. 2016, в 13:57
X-Cubed 18 янв. 2017, в 06:05

Кроме того, если вы решите пойти в реестре, помните, что текущие ассоциации пользователей находятся под HKEY_CURRENT_USERSoftwareClasses. Возможно, лучше добавить ваше приложение вместо локальных классов.

Если ваша программа будет запущена ограниченным пользователем, вы все равно не сможете модифицировать CLASSES_ROOT.

Источник: overcoder.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru