I recently customised my "New" context menu to my likings by adding HTML, CSS, JavaScript and PHP to it and removing the others though they have values I want to change if possible.

For example, HTML file appears in the list as, "Opera Web Document" with the Google Chrome icon (Chrome is my default browser). I want to change that text to "HTML File". Also when you select it, the file defaults as "New Opera Web Document.html" and I want to change that to "index.html".

Is such a thing possible and if so, how? Thanks.


Good question, difficult to answer. I'm afraid default filename for New context menu is hardcoded in shell32.dll: by default, the name of the new file you create is the name of the file type, preceded by the word New and followed by the appropriate filename extension.

I can't verify promising combination of FileName and ItemName values under the ShellNew subkey (read more here).

The last chance seems to be the command subkey method: if contains something like

wscript.exe "full-path\ItemName.vbs" "%1"

Here that ItemName.vbs could create arbitrary named file, deriving it from the "%1": it is fully qualified path to default file name.

The script could e.g. copy a template file from the FileName value; if the name of template file is not fully qualified there, then the script could search for it in the same way as though using FileName value method (read more here).

Above mentioned this registry subkey: HKEY_CLASSES_ROOT\.abc\ShellNew, where .abc epitomizes any desired file extension...

--- Note ---

In a registry editor, navigate to HKEY_CLASSES_ROOT\.html and take note of of the Default value data could be something like ChromeHTML. Now, navigate to HKEY_CLASSES_ROOT\ChromeHTML and take note of of the Default value data again: could be something like Chrome HTML Document.

In that scenario, the New context menu should offer Chrome HTML Document with default filename New Chrome HTML Document.html.

(By the way, clean Windows default above to htmlfile, HTML Document and New HTML Document.html, respectively).

Back to our occurrence: New is hardcoded in shell32.dll, Chrome HTML Document is data from registry (could be changed) and .html is our filename extension (filetype).

However, I'd feel happy for the brief, short New prefix: in my localization defauts it to Nový objekt - (hyphen including!)


This is a repeat question from here:

Change Name/Description in windows context menu

This came up first in Google and a bunch of other links showed up with no answer. For some reason, even programs made to edit context menus can't change the name of New menus items in context menus. Maybe there are some paid solutions but I didn't find a simple free one.

The answer by Knuckle-Dragger on the previous link works. I'm only cross-linking this because the actual answer took a while to find in Google.

Here's a copy and paste of the answer from the above link:

Knuckle-Dragger said:

You'll need to find the sister key and do two things. First delete the "FriendlyTypeName" if it has one. Then edit the default value. I'll example you with .reg / regfile.

The .reg files template is in HKCR.reg, but the "Registration Entries" text displayed in 'New' is from the HKCR\regfile default @ value.

Step 1) Delete / rename the 'FriendlyTypeName' if your key has one.

Step 2) Edit the default value to the new name. Effect is immediate.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\regfile] @="Registration Entries" "FriendlyTypeName"=-

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.