C # Windows "Открыть с помощью› "Поведение контекстного меню


person TK.    schedule 24.09.2010    source источник
comment
См. stackoverflow.com/questions/222561/   -  person Jim Mischel    schedule 24.09.2010


Ответы (2)


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

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\. Вот ответ SO, в котором рассказывается, как это сделать.

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

person Scott Chamberlain    schedule 24.09.2010

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

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

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

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

person KeithS    schedule 24.09.2010