Дополнения Windows Explorer

Как такие инструменты, как SVN и Git, присоединяются к Windows Explorer, чтобы они добавляли опции в меню, вызываемое правой кнопкой мыши, а также добавляли галочку / восклицательный знак в зависимости от того, был ли файл отредактирован?

(Я не после Git или SVN-специфичной информации - я просто использовал их в качестве примеров)

13.10.2009 03:48:21
3 ОТВЕТА
РЕШЕНИЕ

То, что вы хотите, называется Shell Extensions, это внутрипроцессные COM-объекты, которые расширяют возможности операционной системы Windows.

альтернативный текст
(источник: csscript.net )

вы можете увидеть эти ссылки

До свидания.

10
30.04.2019 10:09:44

Проводник позволяет DLL-библиотекам регистрироваться как расширения оболочки . Расширение оболочки может предоставлять элементы контекстного меню, наложения значков и множество других функций. Это достигается путем предоставления определенных COM-интерфейсов, которые вызывает Explorer, например, до отображения меню или значка. Вот домашняя страница MSDN для расширяемости оболочки - хотя, как ни странно, материала о контекстных меню и наложениях значков больше не существует - вам, возможно, придется попробовать автономный SDK под Win32 и COM Development | Интерфейс пользователя | Пользовательский опыт Windows | Windows Shell | Shell Developer's Guide | Интеграция приложений в оболочку.

3
13.10.2009 03:58:57

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

EZShellExtensions MFC
EZShellExtensions.NET

Существует много различных типов:
- контекстные меню
- страницы свойств
- обработчики значков
и многое другое ...

У них также есть другая библиотека для написания расширений пространства имен (вещи, которые отображаются на панели дерева Проводника Windows).

1
13.10.2009 15:28:46
вы ссылаетесь на версию .NET этой платформы. Никогда, никогда не используйте это! Никогда, никогда не пишите расширение оболочки в .NET. И вот почему: blogs.msdn.com/oldnewthing/archive/2006/12/18/1317290.aspx
Stefan 13.10.2009 13:14:35
Интересный момент. Не думал об этом. Я думаю, хотя это может или не может быть проблемой в зависимости от вашей целевой аудитории. Если вы пишете для хорошо контролируемой аудитории (например, как сайты интрасети могут ориентироваться на JUST IE и игнорировать другие браузеры), это может не быть проблемой, но для публичного выпуска это хорошая точка, которую нужно принять во внимание. Обновил мой ответ, чтобы включить версию MFC.
eidylon 13.10.2009 15:27:40
Это не проблема IE против других браузеров. Проблема в том, что каждое приложение, которое использует плагины, может сломаться. Представьте себе нативное приложение, которое использует плагины COM, и один из этих плагинов COM написан на .NET. Если приложение использовало диалог открытия / сохранения файла до того, как ему нужно было загрузить плагин, этот плагин может не загрузиться, потому что другая среда выполнения .NET уже была загружена из-за этого плохого расширения оболочки. На самом деле, даже не нужно использовать диалог открытия / сохранения файла: подойдут даже некоторые часто используемые «нормальные» функции оболочки, такие как SHGetFileInfo (). И да: у меня есть приложение, которое ломается, если установлены такие расширения оболочки
Stefan 15.10.2009 20:33:00
Да нет; Я понимаю, что вы говорите ... IE был всего лишь примером того, как вам иногда не нужно беспокоиться о такой ситуации, в зависимости от вашего приложения. Например, во многих банковских средах рабочие станции ВЫСОКИ, ВЫСОКО контролируемы, и ничего не происходит в тех системах, которые не были тщательно и тщательно протестированы. Если вы находитесь в одной из этих сред, в некотором смысле все немного проще. Для широкой общественности, хотя, да - эти вопросы, безусловно, стоит рассмотреть.
eidylon 15.10.2009 21:28:50
@Stefan С введением параллельного выполнения различных версий CLR в .NET 4.0 12 апреля 2010 г. эта проблема наконец-то была решена. См. Также соответствующую статью SOF: stackoverflow.com/questions/3053876/… .
Marc Sigrist 7.02.2012 10:31:19