2012-03-10 8 views

risposta

7

Esso può essere fatto su XP utilizzando una colonna un'estensione della shell Handler - vedere qui: http://www.codeproject.com/Articles/3747/Explorer-column-handler-shell-extension-in-C#

Tuttavia IColumnHandler non è supportata su Vista e su. Qui devi implementare PropertyHandler. Vedi Windows SDK \Samples\winui\Shell\AppShellIntegration\PropertyHandlers.

Ogni proprietà è descritta dal file XML dello schema di proprietà. Questo schema di proprietà deve essere registrato con PSRegisterPropertySchema(). Strumenti di gestione immobili IInitializeWithXXX, IPropertyStore e facoltativamente IPropertyStoreCapabilities. Devi registrare CLSID della tua implementazione per ogni estensione di file che vuoi gestire.

Purtroppo, non è possibile utilizzare AllFileSystemObject o * in registrazione.

+1

Spiacente, modificato la mia risposta per aggiungere informazioni per Vista e Win7. E prendi in considerazione anche queste informazioni: http://stackoverflow.com/questions/8914425/windows-7-property-handler-works-in-explorer-but-not-fileopendialog – Flot2011

+1

Fammi sapere se questo è abbastanza buono per tu: http://msdn.microsoft.com/en-us/library/windows/desktop/dd940375(v=vs.85).aspx – Flot2011

+2

di solito non è una buona idea scrivere estensioni della shell nel codice gestito. vedere qui: http://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows-shell-extension-with-net-framework-4-c-vb-net-part-1 .aspx Tuttavia è possibile, cercherò di trovare un po 'del mio vecchio codice e postarlo qui. – Flot2011