Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
419 views
in Technique[技术] by (71.8m points)

registry - Add a Windows Shell context menu entry for a specific extension (not file type)

To add a Windows shell context menu, let's say for .txt files - if the .txt extension in HKEY_CLASSES_ROOT (or in HKEY_CURRENT_USERSoftwareClasses, doesn't really matter) has the default value (file type) txtfile - you add the command to HKEY_CLASSES_ROOTxtfileshellyourcommand (and the command itself in HKEY_CLASSES_ROOTxtfileshellyourcommandcommand, of course) and there you go.

However, let's say the .txt extension instead has the default value Notepad++_file. Notepad++_file might be the file type for many other extensions, so if you add the command to HKEY_CLASSES_ROOTNotepad++_file, then this command will appear for every extension associated with Notepad++.

So, the question is: how can you add a menu entry for ONLY ONE specific EXTENSION, without changing its file type, if possible at all?

P.S.: I don't want to just duplicate the file type, because future changes to the original file type won't affect the duplicated one.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Here you go:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT*shellyour custom app]
@="Open with your custom app"
"icon"="C:\Windows\notepad.exe,0"
"AppliesTo"=".nfo"

[HKEY_CLASSES_ROOT*shellyour custom appcommand]
@="C:\Windows\notepad.exe "%1""

The line "AppliesTo"=".nfo" does the trick.

Works perfectly on Windows 10.

It works per file extension, regardless if there is an application associated with that extension or not. Doing this way it less invasive and leaves a very small footprint in the registry.

Compare to Add menu item to windows context menu only for specific filetype


Edit:

If you want to apply that command to more than one extension use:

"AppliesTo"="System.FileName:"*.nfo" OR System.FileName:"*.log""

Credit: https://superuser.com/questions/183785/windows-7-context-menu-for-folders-if-folder-contains-certain-filetypes


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...