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

StackOverflow https://stackoverflow.com/questions/815483

Вопрос

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

ПОСЛЕДУЮЩИЕ МЕРЫ:

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

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