Desktop Context Menu Manipulation -- For Windows 9x/ME/2K/XP      



This is one of my favorite hacks here. It adds the Large - List - Small - Details icon views to the desktop, and allows you to alter the desktop context menu at the same time. Now, this mod can be pretty tricky, and I hope I explain everything good enough for you all to accomplish it, but just ask for help if you need it after reading this tutorial.

Ok, you'll need to load up Shell32.dll in Reshacker, then go to Menu #215. This is the desktop context menu in it's raw form. It works hand in hand with Menu #216, which is the explorer folder background context menu, or some of it anyway.

Now, all that I really did for this was take the icon view commands from #216, and copy them over to #215, but then of course, I adjusted the locations of them, removed some seperators, and renamed some items. Editing this menu is identical to editing the start menu if you've read that tutorial already. So, what I'm going to do here is rather then focus on instructing you to do it manually, I'm going to provide you with the necessarry text that you can copy from this page, and paste into your Menu #215, hit compile, save, replace, and be done. I will go over some things though. So, if you want to do it the easy way, SELECT ALL text from Menu#215, and CUT it out, just remove it completely, everything. You should have nothing but a blank screen. Now, here's the text:

215 MENUEX
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "", 0, MFT_STRING, MFS_ENABLED, 0
{

POPUP "Icon Options", 28673, MFT_STRING, MFS_ENABLED, 0
{
MENUITEM "Auto", 28737, MFT_STRING, MFS_ENABLED
MENUITEM "Line Up", 28738, MFT_STRING, MFS_ENABLED
MENUITEM "Show", 28739, MFT_STRING, MFS_ENABLED
MENUITEM "Large", 28713, MFT_STRING, MFS_ENABLED
MENUITEM "Small", 28714, MFT_STRING, MFS_ENABLED
MENUITEM "List", 28715, MFT_STRING, MFS_ENABLED
MENUITEM "Details", 28716, MFT_STRING, MFS_ENABLED
}
MENUITEM "Re&fresh", 28931, MFT_STRING, MFS_ENABLED
MENUITEM "&Paste", 28698, MFT_STRING, MFS_ENABLED
MENUITEM "Paste &Shortcut", 28700, MFT_STRING, MFS_ENABLED
MENUITEM "&Undo", 28699, MFT_STRING, MFS_ENABLED

}
}

Now, after you've pasted this text into Menu #215, you'll notice that it's all over to the left side of the screen, and the font will be much larger then what it should be, BUT, this is normal, and it's OK. After you've pasted it in there, simply hit the Compile Script button, and Reshacker will automatically place the text where it needs to be, AND, will change the font and font size. So, there's the easiest way possible to accomplish this hack.

Now, same rules apply here as they did for the start menu. If you use the text above, you'll have a desktop context menu identical to the one in the image up top (except for the girl, as that's a shell extension that I will touch on at the end of this tut), and if you want to change some things around, then by all means, go for it. Any item you see in between " " marks, can be renamed to whatever you desire. Use symbols, numbers, letters, whatever you want, it doesn't matter, and it's all allowed. You will have to go to Menu #221 if you'de like to rename the "Auto Arrange" styles as I have. Mine are "Name" "Type" "Size" "Date". Why these are in another menu is beyond me, but, they are, so don't forget those. Also, the Properties menu item is #220. And know too that the Properties item, the NEW menu, and the auto arrange styles are called from diffent locations, and in the NEW menus case, it's called from a completely different file, and there's some registry things happening for that menu as well. I've yet to find a successfull method for renaming or relocating it, but I'm working on it. :)

Now you'll notice that some of the default menu options that are normally in the ROOT of the context menu, have now been placed into the "Icon Options" menu. I always felt that since these default commands were icon related to begin with, why not put them there? :) So, if you do not like this, or you want to redo it in some other way, for example, lets say you want to place some or all of the options in the ROOT of the menu, simply take the MENUITEM line, and line it up with the bottom 4 MENUITEM entries. MENUITEM entries that are farthest to the left in any menu always represents that the item is in the ROOT of the menu. Be careful here though with the { and } symbols. In the case of the example above, you'de place your new menuitem underneath the } symbol, once again, lineing it up with the other ROOT MENUITEMS.

Now really, the only major part that Menu #216 plays in this, is that's where you find the icon views to add to #215. You'll notice by looking at #216, that it's a fairly large menu, containing several different commands and functions. There's not much else you can add to the desktop context menu, as it's a background menu, and requires programming to really break into it and add true functionality to it, BUT, you can take commands, or MENUITEMS from menu #216, and place them inside of #215. All of the standard Copy/Paste/Select all, etc.. commands will work in #215, however, other commands from #216 may not work in #215, it's pretty much all just about playing with it as far as that goes.You can also add seperators by typing this line:

MENUITEM "", 65535, MFT_SEPARATOR, MFS_ENABLED

If you change the ID number from 65535 to 0, that will result in a blank seperator. (Thanks to Pogrelz from Modzine.net for finding that).You can add seperators between MENUITEMS, and also between POPUP menus as well.

One more thing you could do here would be to ADD a new POPUP menu. I actually took a break while doing this tutorial to do this little mod to my own menu, took another shot of it, and here it is:



Now, what I did was add a new POPUP line, gave it the title of "DesktoP", and gave it the ID # of 2. Now, all of my original ROOT commands are in the DesktoP menu as you can see. Now when doing something like this, and removing the ROOT itmes, you have to add a new } symbol one line down from the last MENUITEM, which is also one line UP from the last two } } symbols. That shouldn't be too confusing by this time now for you, but just in case, I'll provide a second set of text that you can copy from here, and paste into your #215. Remember, SELECT ALL text from your #215, CUT it out completely, the PASTE this text into it:

215 MENUEX
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "", 0, MFT_STRING, MFS_ENABLED, 0
{

POPUP "IcoN", 28673, MFT_STRING, MFS_ENABLED, 0
{
MENUITEM "Auto", 28737, MFT_STRING, MFS_ENABLED
MENUITEM "Line Up", 28738, MFT_STRING, MFS_ENABLED
MENUITEM "Show", 28739, MFT_STRING, MFS_ENABLED
MENUITEM "Large", 28713, MFT_STRING, MFS_ENABLED
MENUITEM "Small", 28714, MFT_STRING, MFS_ENABLED
MENUITEM "List", 28715, MFT_STRING, MFS_ENABLED
MENUITEM "Details", 28716, MFT_STRING, MFS_ENABLED
}
POPUP "DesktoP", 2, MFT_STRING, MFS_ENABLED, 0
{
MENUITEM "Re&fresh", 28931, MFT_STRING, MFS_ENABLED
MENUITEM "&Paste", 28698, MFT_STRING, MFS_ENABLED
MENUITEM "Paste &Shortcut", 28700, MFT_STRING, MFS_ENABLED
MENUITEM "&Undo", 28699, MFT_STRING, MFS_ENABLED
}

}
}

Now remember... The FONT will be bigger, and the TEXT will be all to the left, but once you hit the Compile Script button, Reshacker will adjust everything for you.

Ok, so, hopefully you've gotten this one down, and you have a new, sleek desktop context menu. Remember, when you first pull #215 up in Reshacker, it will look alot different, and have some different things going on, but just follow these instructions, and do with it what you want. I should also mention that if you search through all the menu's found in Shell32.dll, you'll see alot of other menus that you see quite often. Not much to mod with those menus, BUT, you can rename things, delete items you don't use, etc...

Now to the image inside of my desktop menu. For those of you who are not frequent Virtual Plastic visitors, and don't know about this, it is a Shell Extension made by Byblos from Virtual Plastic. It applies a bitmap to the desktop context menu that can be up to 96X96 in size. I wouldn't pop my menu out without it! :) Here's the link to it:

http://virtualplastic.net/html/ui_cntxt_dll.html

Ok, so, you should be all taken care of now on this menu. I hope that this tut was detailed enough, and hope everything worked for you. If not though, be sure to remember to check the basics. Did you hit the Compile button? Did you save the file properly, and if on 2K/XP, are you doing the right file replacement procedure? Hopefully, that will clear up any problems you may have, but if you need me, as always, contact me via email, or leave a comment. Thanks for reading.

by WinT