C # Windows 'Open с> «Поведение контекстного меню [дубликат

StackOverflow https://stackoverflow.com/questions/3788429

Вопрос

Возможный дубликат:
Ассоциация FileType с приложением (C #)

Я пишу приложение C # Windows для визуализации и модификации файлов «.Build» (сценарии NANT). Я хотел бы, чтобы пользователь мог правильно щелкнуть файл .Build в Windows Explorer и выберите опцию «Открыть с>», чтобы файл был изменен в моем приложении.

Что должна поддерживать мою программу для работы с этим механизмом? Что может моя программа должна сделать для Windows, чтобы включить поддержку контекстной меню?

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

Это было полезно?

Решение

Открыть с помощью команды просто передает путь файла в качестве первого аргумента к приложению, чтобы все, что вам нужно сделать, это

public static void Main(string[] args)
{
    if(args[0] != null)
    {
       //args[0] contans a path to the file do whatever you need to do to display it
    }
    else
    {
       //Start normally
    }
}

Для автоматического размещения программы в открытой списке вам нужно будет добавить несколько клавиш Reg в HKEY_CLASSES_ROOT\YOUR_EXT\. Вот такой ответ говоря, как это сделать

Или вы могли бы просто добавить его вручную на открытый с помощью обычного способа.

Другие советы

Посмотрите на этот блог пост: Расширения оболочки - контекстное меню. Отказ Он имеет код для простого «обертки» на несколько COM крючков в контекстное меню Windows Shell. Поместите его в GAC и, когда вы щелкните правой кнопкой мыши, ваше меню будет включено в подменю контекстного меню правой кнопкой мыши.

Что касается строго использования «Открыть с ...», чтобы сделать ваше приложение, только для файлов, которые он может открыть, это немного проще. Они управляются Windows с использованием ключей реестра в двух местах в реестре:

  1. HKEY_CURRENT_USER Программное обеспечение Microsoft Windows Centreversion Explorer Fileexts .fileextens OpenwithList (установка для текущего пользователя)
  2. HKEY_CLASSES_ROOT .fileextension OpenwithList (Установить для всех пользователей)

Посмотрите на некоторые из существующих, использующих Regedit, затем используйте класс реестра для создания нового ключа для расширения, который вы хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top