Skip to content

Instantly share code, notes, and snippets.

@AhmadFCheema
Created September 13, 2017 14:21
Show Gist options
  • Save AhmadFCheema/d3e0a1eac74e686a2eb1b9bfa19293f5 to your computer and use it in GitHub Desktop.
Save AhmadFCheema/d3e0a1eac74e686a2eb1b9bfa19293f5 to your computer and use it in GitHub Desktop.
Windows context menu, individual Hash calculation shortcut
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\Shell\Calculating.Hash.Checksums.Cascading]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD2]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD4]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD5]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.1]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.256]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.384]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.512]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\All.Hash]
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\Shell\Calculating.Hash.Checksums.Cascading]
"Extended"=""
"MUIVerb"="Calculate hash checksums"
"SubCommands"="MD2;MD4;MD5;SHA.1;SHA.256;SHA.384;SHA.512;All.Hash"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD2]
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD2\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" MD2 > \"%1-Hash (MD2).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD4]
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD4\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" MD4 > \"%1-Hash (MD4).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD5]
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\MD5\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" MD5 > \"%1-Hash (MD5).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.1]
@="SHA-1"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.1\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" SHA1 > \"%1-Hash (SHA-1).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.256]
@="SHA-256"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.256\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" SHA256 > \"%1-Hash (SHA-256).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.384]
@="SHA-384"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.384\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" SHA384 > \"%1-Hash (SHA-384).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.512]
@="SHA-512"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\SHA.512\Command]
@="cmd /s /c pushd &call certUtil -hashfile \"%1\" SHA512 > \"%1-Hash (SHA-512).txt\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\All.Hash]
@="*"
"Icon"="imageres.dll,262"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\All.Hash\Command]
@="cmd /s /c pushd &(call certUtil -hashfile \"%1\" MD2 & certUtil -hashfile \"%1\" MD4 & certUtil -hashfile \"%1\" MD5 & certUtil -hashfile \"%1\" SHA1 & certUtil -hashfile \"%1\" SHA256 & certUtil -hashfile \"%1\" SHA384 & certUtil -hashfile \"%1\" SHA512) > \"%1\"-Hash.txt"
@AhmadFCheema
Copy link
Author

The registry script (CAlculating.Hash.Checksums.Cascading.reg) creates a shortcut entry in extended Windows context menu (Shift+Right-Click) for quickly calculating and saving hash checksums (MD2, MD4, MD5, SHA-1, SHA-256, SHA-384, SHA-512) in a text file. The context menu entry is in the form of a cascading menu with options to calculate and save, individually one of the 7 checksum types, or all of them simultaneously. The checksums are calculated through the Windows built-in Certutil program, without the need for any third-party applications.

  • To make the hash calculation option appear for normal Windows context menu (Right-Click) just remove "Extended"="" from line 4 of the CAlculating.Hash.Checksums.Cascading.reg code.
  • A more customised icon can be used by providing a path to it, for example, "Icon"="\"D:\\Icons\\icons8-Hash-26.ico\"". The extra backslashes (\) are to make sure the quotation marks and backslashes are included in the created registry entry.
  • I recommend the Windows 8 dark-red Hash icon, maybe even try having different colours for different entries.
  • Calculating.Hash.Checksums.Cascading - Remove.reg code is to undo the changes and remove the hash calculation context menu entries.
  • For a simpler non-cascading context menu entry with just one option for calculating and saving all checksum types, check out CAlculating.Hash.Checksums.reg.

@TechComet
Copy link

TechComet commented Oct 19, 2019

How write file as (image inside dll file) ?
imageres.dll,262

@AhmadFCheema
Copy link
Author

I haven't personally tried this, but the following should work:

@TechComet
Copy link

I'm need make custom imageres.dll librarry for my application only as appicons.dll not use imageres.dll

@AhmadFCheema
Copy link
Author

It's similar to the above-linked video, i.e.

  1. Use the original imageres.dll file as the template by making a copy of it and renaming it to something like appicons.dll
  2. Then delete the original icons and add the new ones you need and save the file.

Additional instruction resources: How to Make Your Own DLL File with Customized Icons, and another easier approach.

@TechComet
Copy link

Thank you

@rohknas
Copy link

rohknas commented Jul 29, 2020

Hello, i tryed your solution but i don't have admin rights on my work computer, so i put the entry in HKEY_CURRENT_USER\Software\Classes*\shell\MakeMD5\command, it appears all right in context menu but upon clicking I get the following error : "Windows Cannot Access the Specified Device Path or File"
But on the file i right click "MakeMD5" the rights are all good, it's a file i created myself. i really don't get the error.
I tried to add another entry : HKEY_CURRENT_USER\Software\Classes*\shell\Npp++\command, with the value "C:\Program Files\Notepad++\notepad++.exe" "%1", and it's working perfectly
If someone can spare any help?

@AhmadFCheema
Copy link
Author

In Computer\HKEY_CURRENT_USER\Software\Classes\*\shell\MakeMD5\Command, I added the following value:
cmd /s /c pushd &(call certUtil -hashfile "%1" MD5) > ""%1"-Hash (MD5)".txt

Tested this to be working for an admin account. First, try this one to make sure there weren't any simple typo mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment