SharpShell makes it easy to create Windows Shell Extensions using the .NET Framework.
You can use SharpShell to build any of the extensions below:
- Shell Context Menus
- Icon Handlers
- Info Tip Handlers
- Drop Handlers
- Preview Handlers
- Icon Overlay Handlers
- Thumbnail Hanlders
- Property Sheet Extensions
- Desk Band Extensions
Send me a message to add a project to this list:
There is an article on the CodeProject that describes in detail how you can use the Server Registration Manager tool to deploy SharpShell servers:
Shell Context Menus allow the context menus used in Windows Explorer to be customised.
Step by Step Tutorial on the CodeProject.
Shell Icon Handlers are DLLs that are registered in the system to customise the appearance of icons.
Step by Step Tutorial on the CodeProject.
Shell Info Tip Handlers are DLLs that are registered in the system to customise tooltips for items in the shell.
Step by Step Tutorial on the CodeProject.
Shell Drop Handlers are DLLs that are registered in the system to extend the drag and drop functionality in the Shell.
Step by Step Tutorial on the CodeProject.
Shell PreviewHandlers are dlls that can be registered in the system to allow you to create visually rich previews for items that are displayed directly in Windows Explorer.
Step by Step Tutorial on the CodeProject.
Shell Icon Overlay Handlers can be really useful. They let you display an icon overlay over shell objects to provide extra information. Programs like Dropbox use these overlays to show whether icons are synchronised or not.
Step by Step Tutorial on the CodeProject.
Shell Thumbnail Handlers (or as they're sometimes known, Shell Thumbnail Providers) are COM servers that you can write to customise the appearance of the thumbnail icons in the Windows Shell.
Step by Step Tutorial on the CodeProject.
These are extensions that add extra pages to the property sheets shown for shell items such as files, network shares, folders and so on.
Step by Step Tutorial on the CodeProject.
Useful notes:
- Always include a DisplayName for a deskband extension, otherwise it won't register.
- The UserControl for deskband should specify a minimum size and maximum size - if they're not specified the actual size will be used.
Below are some resources I've found useful during SharpShell development. Please get in touch if you have suggestions for more, or just make a pull request with changes to this file.
Namespace Extensions
Desk Bands
SharpShell is licensed under the MIT License - the details are at LICENSE.md