Sharpshell
SharpShell makes it easy to create Windows Shell Extensions using the .NET Framework.
Install / Use
/learn @dwmkerr/SharpshellREADME
SharpShell
SharpShell makes it easy to create Windows Shell Extensions using the .NET Framework.
<!-- vim-markdown-toc GFM -->- Installation
- User Guide
- Supported Shell Extensions
- Developer Guide
- Compatibility
- Documentation
- Contributor Guide
- Testimonials
- Projects that use SharpShell
- Thanks
- License
If you find this project useful, please consider Sponsoring!
Installation
Install SharpShell by searching for 'SharpShell' in the NuGet package manager, or using the Package Manager Console:
PM > Install-Package SharpShell
The latest official packages are listed below:
| Component | Package |
|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SharpShell | |
|
SharpShellTools | |
|
ServerRegistrationManager | |
User Guide
All documentation is being moved to docs.
Some of the most useful guides are:
Supported Shell Extensions
The following extensions are supported by SharpShell.
Shell Context Menus
Shell Context Menus allow the context menus used in Windows Explorer to be customised.

Step by Step Tutorial on the CodeProject.
Icon Handlers
Shell Icon Handlers are DLLs that are registered in the system to customise the appearance of icons.
![]()
Step by Step Tutorial on the CodeProject.
Info Tip Handlers
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.
Drop Handlers
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.
Preview Handlers
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.
Icon Overlay Handlers
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 files are synchronised or not.

Step by Step Tutorial on the CodeProject.
Thumbnail Handlers
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.
Property Sheet Extensions
These are extensions that add extra pages to the property sheets shown for shell items such as files, network shares, folders and so on.

Desk Band Extensions
These are extensions which add custom functionality to the Windows Desktop or Task Bar.

Developer Guide
The repository made up the following components:
| Component | Description |
|-------------------------------------------------------------|--------------------------------------------------------|
| docs/ | Project Documentation |
| SharpShell/ | The core SharpShell assemblies. |
| SharpShellInstallerSample/ | An example of an installer for a SharpShell extension. |
| SharpShellNativeBridge/ | Interface to Win32 code needed for property sheets. |
| Tests/ | Regression test scripts and data. |
Most developers will only need to work with the code in the SharpShell folder.
SharpShell is currently developed in Visual Studio 2017, and can be built using the Community Edition.
In order to maximize compatibility, we do not use the latest version of each SDK. The following components are needed:
- .NET Core runtime
- Microsoft Visual Studio 2017 Installer Projects
- Chocolatey (choco)
Building & Testing
As long as the correct components have be installed for Visual Studio, you should be able to just open the main ./SharpShell/SharpShell.sln solution to build, test and run any of the code or samples.
To build using Powershell (which is what is done in the CI/CD process), first allow Powershell to execute scripts and then install Chololatey:
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Now the following scripts to run the processes:
| Script | Notes |
|----------------|--------------------------------------------------------------------------------------------------------------------------------------|
| config.ps1 | Ensure your machine can run builds by installing necessary components such as nunit. Should only need to be run once. |
| build.ps1 | Build all solutions. Ensures that we build both 32/64 bit versions of native components. |
| test.ps1 | Run all tests, including those in samples. |
| coverage.ps1 | Create a coverage report for the main SharpShell project (samples are not included). Reports are written to ./artifacts/coverage |
These scripts will generate various artifacts which may be useful to review:
artifacts\
\build
\SharpShell
Related Skills
node-connect
331.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
331.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.5kCommit, push, and open a PR
