Помогите мне начать создавать файл -> контекстное меню правой кнопкой мыши в Vista - PullRequest
0 голосов
/ 02 мая 2009

Я начинающий разработчик .Net 2.0 и 3.5. Я хочу создать приложение, которое создает контекстное меню при щелчке правой кнопкой мыши по файлу в Vista. После щелчка правой кнопкой мыши - думаю, я смогу разобраться с остальными, но я не знаю, как получить доступ к Vista API.

FOLLOW-UP:

Поскольку я читал некоторую информацию, на которую ответили люди, я обнаружил, что я собираюсь излишне использовать расширения оболочки. Я думаю, что смогу сделать этот проект намного проще, если просто вызову свое приложение и передам имя файла в качестве параметра. Это по-прежнему требует, чтобы мое приложение появлялось в контекстном меню проводника, когда на файлы с определенными расширениями нажимали правой кнопкой мыши. Как мне это сделать?

Ответы [ 4 ]

1 голос
/ 03 мая 2009

С риском звучать бесполезно, я бы рекомендовал против этого в .Net 2.0 или 3.5. Как сказал Брайан, вы пытаетесь реализовать расширение оболочки. Они реализованы в виде библиотек, которые загружает оболочка Vista.

Хотя в Интернете есть несколько учебных пособий, в которых даются инструкции по их реализации в .Net 2.0, или в некоторых из них упоминается, насколько это плохая идея. Если вы заставляете оболочку Vista загружать расширение оболочки .Net, она вынуждена загружать всю .Net CLR, которая требуется вашему расширению оболочки. Еще хуже то, что вы можете загрузить только одну версию полной .Net CLR в одном процессе. Поэтому, если у вас есть расширение оболочки, для которого требуется .Net 1.0 CLR, а Vista уже загрузила его, она не сможет загрузить 2.0 CLR, которая требуется для вашего расширения оболочки.

Также есть некоторые статьи Переполнения стека , которые уже обсуждают это.

Некоторая информация о реализации расширения оболочки в неуправляемом C ++ (KBCafe PDF, не удалось найти простую ссылку html)

0 голосов
/ 03 мая 2009

Я вполне уверен, что вам запрещено использовать управляемый код для написания расширений оболочки для проводника в любой версии Windows. Поэтому, если вы хотите написать один, вам нужно будет сделать это на «традиционном» языке, таком как C ++.

0 голосов
/ 03 мая 2009

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

0 голосов
/ 02 мая 2009

То, что вы пытаетесь написать, называется «расширением оболочки». Я никогда не писал ни одного, поэтому не могу дать вам быстрый пример, но теперь, когда вы знаете, как он называется, вы, вероятно, добьетесь большего прогресса, выполнив поиск учебников в Google.

...