Добавить пункт контекстного меню в проводнике Windows только для определенного диска - PullRequest
2 голосов
/ 12 августа 2011

Я хотел бы добавить пункт контекстного меню в проводнике Windows, немного похожий на notepadd ++, winzip, winrar.

Это мои требования:

  • Элемент контекстного меню должен отображаться во всех файлах определенного диска (например: должен отображаться на D:, но не на C:)
  • Контекстное меню должно просто запустить программу .NET с выбранными файлами в качестве параметров
  • Должно работать на XP, Vista, Windows 7 (32 и 64 бит)

После небольшого поиска выглядит так, как будто я мог бы использовать ключ реестра HKEY_CLASSES_ROOT \ Folder \ shell и подключить себя сюда, но похоже, что это все или ничего, нет способа разместить свой элемент только в контекстном меню для файлы в D: но не в C:

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

Какой самый простой способ решить мою проблему?

Спасибо

1 Ответ

1 голос
/ 12 августа 2011

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

где ты прочитал это обескураживает? Дино Эспозито написал целую книгу по расширениям оболочки, написанную на C #, Google для нее:)

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

Реестр содержит регистрацию ShellExtension (плюс другие вещи), поэтому я считаю, что вам следует придерживаться подхода расширения кодированной оболочки, не затрагивая реестр вручную, поскольку во втором случае у вас меньше контроля над тем, что происходит.

...