2012-03-10 11 views

Odpowiedz

7

Można to zrobić na XP przy użyciu kolumny Handler rozszerzenia powłoki - patrz tutaj: http://www.codeproject.com/Articles/3747/Explorer-column-handler-shell-extension-in-C#

Jednak IColumnHandler nie jest obsługiwana w systemie Vista i wyżej. Tutaj musisz wdrożyć PropertyHandler. Zobacz Windows SDK \Samples\winui\Shell\AppShellIntegration\PropertyHandlers.

Każda właściwość jest opisana w pliku XML schematu właściwości. Ten schemat właściwości musi być zarejestrowany pod numerem PSRegisterPropertySchema(). Właściwość obsługi implementuje IInitializeWithXXX, IPropertyStore i opcjonalnie IPropertyStoreCapabilities. Musisz zarejestrować CLSID swojej implementacji dla każdego rozszerzenia pliku, które chcesz obsłużyć.

Niestety, nie można użyć rejestracji AllFileSystemObject lub *.

+1

Przepraszam, zredagowałem moją odpowiedź, by dodać informacje dla Vista i Win7. I weź te informacje pod uwagę również: http://stackoverflow.com/questions/8914425/windows-7-property-handler-in-explorer-but-not-fileopendialog – Flot2011

+1

Daj mi znać, jeśli ten jest wystarczająco dobry dla ty: http://msdn.microsoft.com/en-us/library/windows/desktop/dd940375(v=vs.85).aspx – Flot2011

+2

zazwyczaj nie jest dobrym pomysłem pisanie rozszerzeń powłoki w zarządzanym kodzie. zobacz tutaj: http://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows-shell-extension-with-net-framework-4-c-vb-net-part-1 .aspx Jakkolwiek jest to możliwe, spróbuję znaleźć mój stary kod i opublikować go tutaj. – Flot2011

Powiązane problemy