2010-09-24 7 views
7

Можно создать дубликат:
Filetype association with application (C#)C# Windows 'Открыть с помощью>' поведения Контекстное меню

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

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

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

+0

См. Http://stackoverflow.com/questions/222561/filetype-association-with-application-c –

ответ

4

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

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\. Here is a SO answer говорить как это сделать

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

2

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

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

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .FileExtension \ OpenWithList (установить для текущего пользователя)
  2. HKEY_CLASSES_ROOT \ .FileExtension \ OpenWithList (установить для всех пользователей)

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

Смежные вопросы