Добавление пункта контекстного меню в проводнике windows только для конкретного диска


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

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

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

Через некоторое время поиск, это выглядит так, как будто я мог бы использовать ключ реестра "папкаоболочка" и подключить себя здесь, но это выглядит так, как будто это все или ничего, нет способа иметь мой пункт только в контекстном меню для файлов В D: но не C:

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

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

Спасибо

1 2

1 ответ:

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

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

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

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