манипулировать контекстным меню проводника Windows - PullRequest
1 голос
/ 22 января 2011

В настоящее время я пишу приложение с WPF в Framework 3.5 с пакетом обновления 1 (SP1), и мне нужно расширить свои функциональные возможности до контекстного меню проводника Windows, например, как это делал Winzip или Winrar или кто-либо еще, когда пользователь щелкнул правой кнопкой мыши файл или папку.

Я много изучал, некоторые говорили, что используют Registry, что после того, как я попробовал, довольно негибко.Потому что мне нужно подменю в моем контекстном меню, а также значки.

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

Программирование в оболочке требует знаний в области программирования COM, которые требуют времени для изучения.

Для всех статей, которые я нашел об изменении контекстного меню Windows Explorer, они в основном публикуются в 2003, 2005 и т. Д., Это 5 лет назад, я имею в виду, после 5 лет разработки, есть ли какие-либо новые технологии, которыеможет сделать это возможным в текущей среде .net, такой как 3.5 SP1 или 4.0, используя c #?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2016

Чтобы сделать дополнительную запись в контекстном меню проводника Windows Вам необходимо добавить два вложенных ключа в реестр Windows по адресу HKEY_CLASSES_ROOT \ Folder \ shell

Эти ключи:

  1. Папка \ shell \ MyProduct: значение этого ключа будет отображаться в виде текста в новом элементе контекстного меню проводника Windows.Вы также можете добавить значок в пункт контекстного меню, добавив значение к клавише 1 и назовите его «Значок», затем укажите путь к значку в качестве значения.

  2. Папка \ оболочка \ MyProduct\ command: установите путь к приложению, которое вы хотите запустить.

Вот ссылка для получения дополнительной информации и примера кода C #: http://newapputil.blogspot.in/2016/12/adding-new-item-to-context-menu-of.html

0 голосов
/ 22 января 2011

Добавление приложения в правую кнопку мыши на каждой папке

Ниже описано, как добавить любое приложение в контекстное меню, если щелкнуть правой кнопкой мыши любую папку.Таким образом, вы не всегда должны идти в меню «Пуск».Если вы щелкнете правой кнопкой мыши по любой папке, вы сможете получить доступ к этому приложению, так же, как и при использовании Sent To.

  1. Открыть RegEdit
  2. Перейти к HKEY_CLASSES_ROOT \ Папка \ shell
  3. Добавить новый ключ к ключу «Shell» и дать ему любое имя.
  4. Дайте ему значение по умолчанию, которое будет отображаться при щелчке правой кнопкой мыши по папке, например, NewKey (используйте «&» без кавычек перед любым символом, и это позволит вам использовать клавиатуру)

  5. Нажмите на ключ HKEY_CLASSES_ROOT \ Папка \ shell \ NewKey

  6. Добавить новый ключ с именем Command
  7. Установить (по умолчанию)значение приложения, которое вы хотите запустить
  8. Например: c: \ program files \ internet explorer \ iexplore.exe (укажите полный путь и параметры, если они вам нужны)

Написание кода для вас ....

Редактировать:

код на C # (для папок)

 private void button1_Click(object sender, EventArgs e)
    {           
        Microsoft.Win32.RegistryKey contextMenuKey = Registry.ClassesRoot.CreateSubKey(@"Folder\shell\MyName\command"); 
        //MyName is name to display
        contextMenuKey.SetValue(null, @"c:\program files\internet explorer\iexplore.exe");  
        //null or "" to set value in (Default), full path of your application
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...