Вопрос

Я хочу написать небольшой инструмент, который выполняет следующее:

Когда вы щелкаете правой кнопкой мыши на файле с определенным расширением, в контекстном меню проводника Windows отображается дополнительная запись.

Когда вы нажимаете на эту запись, запускается определенный EXE-файл с этим файлом в качестве одного из своих параметров.

Я хотел бы использовать для этого C # / .NET 2.0.Если это невозможно, я также мог бы сделать это с помощью C ++ / Win32.

Мои вопросы таковы:

  1. Возможно ли это с C # .NET 2.0?
  2. Какие функции необходимы для интеграции в контекстное меню проводника Windows?
  3. Как я могу сделать это постоянным?(Я не хочу перезапускать этот инструмент после каждой загрузки)
  4. О чем я должен позаботиться особенно?(другая операционная система, разрешения безопасности и т.д.)
Это было полезно?

Решение

Вам нужно будет получить доступ к реестру и добавить ключ в разделе root\\File\\shell или root\Folder\\shell, в зависимости от того, на каких элементах вы хотите видеть пункт меню.

Попробуй эта статья в CodeProject, - это очень полезно.

Редактировать:Там есть еще одна статья здесь что может оказаться полезным.

Другие советы

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

Рассмотрим случай, когда у вас есть два расширения оболочки;один для .NET 3.5, один для .NET 1.Какая среда выполнения будет загружена в ваш процесс?Ну, это более или менее случайно - зависит от того, какое расширение оболочки загружается первым.Иногда это может быть среда выполнения 2.0, иногда это может быть среда выполнения 1.1.

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

Таким образом, если вы спуститесь по Маршрут расширения оболочки вам следует использовать родной C ++ / COM /Win32.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top