ShellExtension

Preface

DB = Double click.
SC = Single click.
LMB = Left mouse button.
RMB = Right mouse button.

While shell extensions for windows are very specific aspect.

I will use the term a broader meaning here. Here it includes:

  • Associate types: (details see links section)
    • Available types:
      • HCR\.xxx\: Specific file type.
        .xxx is one way of definition. Often there is also a xxx_auto_file key.
        In that case the .xxx often only forwards to the later.
      • HCR\*\: Any file.
      • HRC\AllFilesystemObjects\: Any file or folder.
      • HCR\Folder\: All folders (what means all?).
      • HCR\Directory\: File folders.
      • HCR\Directory\Background\: File folder background.
      • More here and here. I didn't find the others useful myself.
    • ..\shell\Open\command is the standard action on open. Yet if that is not available,
      it will take the first entry. Like
      HCR\.pbo\shell\extract\command
      HCR\.pbo\shell\extractConfig\command
    • LMB DC or enter will launch the app with parameters defined in command for the given type.
    • A file extension can have multiple entries. Each entry is shown, if you RMB SC on a type.
  • shell vs shellex:
    • Shell
      • Shell gives you the selected type as parameter (like file or folder/path).
      • Therefore you can call an app with the given parameter and do nice stuff.
      • You can also apply writing services the command to multiple types at the same time.
        Example launch extractPbo on all selected pbo files.
    • ShellExtension:
      • Use an identifier to point to a different part of the registry and need programming.
      • Therefore you are advised to use the tools listed on the page below to activate/deactivate or add/remove
        new shell extensions.
      • Shell extensions are more powerful as they allow sub menus in the RMB content menu.
        Especially via the programming API you can do anything you like to.
      • Can NOT be moved (to sub menus) or reordered. They are hard wired in the registry.
        Modification can easily lead to a corrupted registry.

Your benefit

The basic idea is to allow you to call tools easier here.
While links in the task bar / desktop / start menu are useful to call app easily,
only shell extension have file or folder context.

So that information can be passed on to the app. This is very useful.

Registry tweaks

IMPORTANT NOTE on reg files

Use them on your own caution!

You need to adapt the path to the location of the tool on your computer.
Check the links section, if you want to add it the safe way.

Unpack PBO

Link

Extract config as cpp from PBO

Link

Create PBO

Link

Convert config.bin to config.cpp

Link

Extract 7z file to folder

7z.exe x %1 -o*

Adds an additional 1st level entry to easily extract a 7z file into
a folder with the naming of the 7z file. Does NOT modify overwrite LMB DC behavior.

extract7zFileToFolder.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\7z_auto_file\shell\extractToFolder\command]
@="\"P:\\Tools\\7-Zip\\7z.exe\" x \"%1\" \"-o*\"" 

Extract rar file to folder

7z.exe x %1 -o*

Adds an additional 1st level entry to easily extract a rar file into
a folder with the naming of the rar file. Does NOT modify overwrite LMB DC behavior.

extractRarFileToFolder.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\rar_auto_file\shell\extractToFolder\command]
@="\"P:\\Tools\\7-Zip\\7z.exe\" x \"%1\" \"-o*\"" 

Launch CMD on file

cmd

Adds an additional 1st level entry for any file to launch the console.
Does NOT modify overwrite LMB DC behavior.

AllFilesCMD.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CMD\command]
@="cmd" 

Launch CMD on directory

cmd.exe /k cd %1

Adds an additional 1st level entry for any directory to launch the console.
Does NOT modify overwrite LMB DC behavior.

DirectoryCMD.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd\Command]
@="cmd.exe /k cd %1" 

Launch git shell on file

sh.exe --login -i

Adds an additional 1st level entry for any file to launch the git shell.
Does NOT modify overwrite LMB DC behavior.

AllFilesGitShell.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\GIT Shell\command]
@="\"C:\\WINDOWS\\system32\\cmd.exe\" /c \"pushd . && \"P:\\Tools\\Git\\bin\\sh.exe\" --login -i\"" 

Launch git shell on directory

sh.exe --login -i

Adds an additional 1st level entry for any directory to launch the git shell.
Does NOT modify overwrite LMB DC behavior.

DirectoryGitShell.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_shell\command]
@="\"C:\\WINDOWS\\system32\\cmd.exe\" /c \"pushd \"%1\" && \"P:\\Tools\\Git\\bin\\sh.exe\" --login -i\"" 

Launch git gui on file

wish.exe "P:\Tools\Git\libexec\git-core\git-gui

Adds an additional 1st level entry for any file to launch the git gui.
Does NOT modify overwrite LMB DC behavior.

AllFilesGitGUI.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\GIT GUI\command]
@="\"P:\\Tools\\Git\\bin\\wish.exe\" \"P:\\Tools\\Git\\libexec\\git-core\\git-gui\"" 

Launch git gui on directory

wish.exe "P:\Tools\Git\libexec\git-core\git-gui --working-dir %1

Adds an additional 1st level entry for any directory to launch the git gui.
Does NOT modify overwrite LMB DC behavior.

DirectoryGitGUI.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_gui\command]
@="\"P:\\Tools\\Git\\bin\\wish.exe\" \"P:\\Tools\\Git\\libexec\\git-core\\git-gui\" \"--working-dir\" \"%1\"" 

Tools

FileMenu Tools

FileMenu Tools

FileMenu Tools allows you to customize the context menu of Windows Explorer. And it lets you:

  • Add some built-in utilities that perform operations on files and folders.
  • Add customized commands which run external applications, copy/move to a specific folder or delete specific file types.
  • Configure the "Send to..." submenu.
  • Enable/disable commands which are added by other applications to the context menu.
The built-in utilities are the following
  • Command
  • Synchronize Folders
  • Extended Delete
  • Find And Replace
  • Advanced Renamer
  • Delete Locked File
  • Delete and no move to Recycle Bin
  • Change Icon
  • Run with Arguments
  • Command Line From Here
  • Split File
  • Join File
  • Copy to...
  • Move to...
  • Copy Name
  • Copy Path
  • Copy Content
  • Paste Clipboard
  • Attributes
  • Change Time
  • Register DLL
  • Unregister DLL
  • Create New Folder
  • Size of Folders
  • Shred Files
  • Send to mail recipient
  • Pack to Folder
  • Duplicate Files
  • Select

License: Freeware.

Screenshots

Fast Explorer

This handy utility allows you to manage context menus items of file objects
displayed in a file manager like Windows Explorer.
It's a very simple way to make your often used file actions quickly accessible.

Even more the Fast Explorer Context Menu Extension DLL is the shell extension library
that allows third party applications to add sophisticated context menu items.
It is configured via plain Ini-file and does not require for developers
a deep knowledge in the areas of Windows shell extensions and Windows Registry.

See readme.txt or the knowledge base for more details.

Fast Explorer

License: This software product is freeware and distributed "as is".

Requirements

  • Windows 98/Me/2000/XP/2003/Vista or later;
  • x86 (32 bit) or x64 (64 bit) processor architecture;
  • Administrative privileges on local machine to edit context menu items.

Knowledge base
Screenshots

Download is a bit hidden on the right side.

ShellExView

Disable/enable static context menu items of Explorer.

The ShellExView utility displays the details of shell extensions installed on your computer,
and allows you to easily disable and enable each shell extension.

ShellExView - Shell Extensions Manager

License: This software product is freeware and distributed "as is".

Using ShellExView

The ShellExView is a standalone executable. It doesn't require any installation process
or additional DLLs. Just copy it to any folder you want, and run it. After you run it,
wait a few seconds until ShellExView loads all shell extensions items.

The page also lists:

  • Disable/Enable Shell Extensions
  • Command-line options
  • Add/Remove special folders to "My Computer" and "Desktop" folders

HashTab

HashTab is a Windows shell extension which adds a tab called "File Hashes" to the
Windows Explorer file properties. The tab contains the MD5, SHA1 and CRC-32 file hashes.

HashTab

License: Freeware.

Requirements

Please note: Hashtab does not support Win9x.
NT, 2000, 2003, 2008, XP, and Vista are supported.

Links

DirectoryGitShell.reg (199 Bytes) kju, 04/10/2009 05:34

extract7zFileToFolder.reg (153 Bytes) kju, 04/10/2009 05:34

extractRarFileToFolder.reg (154 Bytes) kju, 04/10/2009 05:34

AllFilesCMD.reg (88 Bytes) kju, 04/10/2009 05:34

AllFilesGitGUI.reg (169 Bytes) kju, 04/10/2009 05:34

AllFilesGitShell.reg (186 Bytes) kju, 04/10/2009 05:34

DirectoryCMD.reg (109 Bytes) kju, 04/10/2009 05:34

DirectoryGitGUI.reg (202 Bytes) kju, 04/10/2009 05:34