View Single Post
27 Jun 2011   #
lakemac

Windows 7 Ultimate x64 SP1
 
 
bug in regedit?

Ok I think the two laptops talking to each other was a furphy (for anyone old enough to remember the movie Colossus: The Forbin Project (1970) - IMDb - the quote "WARN: THERE IS ANOTHER SYSTEM" comes to mind LOL).

However...
First up I am running Win7 Ultimate 64 bit - not 32 bit (not sure if this has anything to do with the issue but it is worth stating it). The 64 bit registry has a 32 bit "reflection" system in it - cf WoW6432Node which according to Microsoft has a "last writer wins" setup cf:
Registry changes in x64-based versions of Windows Server 2003 and in Windows XP Professional x64 Edition

If I run Brink's script the context menu appears and works as expected, but it would seem if the registry key for "explorer" is in lower case then the added sub keys don't appear. For some strange reason the registry key turned upper case "Explorer" did appear at one stage (clean install shows it as Explorer) in which case the added sub keys under CommandStore\shell are visible.

If I try to add the keys manually (as my original setup had done) then the context menu fails to work (sometimes...)

If I make my own context menu reg script (see below) it works properly but if the reg key for CurrentVersion\Explorer shows as CurrentVersion\explorer then the added subkeys are not visible.

From what I understand the registry is not case sensitive, so I can only put this down to one of the following:
1. a bug in regedit for 64 bit systems
2. the lookup mechanism for the DeskTopBackground\Applications\SubCommands is somehow hard coded for a match on "Explorer" not "explorer"
3. not enough dead chickens...
4. there is some application/service on my systems that continually updates the registry in some strange way.

I would be interested to hear if anyone else's "explorer" entry is starts with a lower case "e" instead of an upper case "E".
The key in question is:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

My own modified version of Brinks context menu code
Code:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Applications]
"MUIVerb"="Applications"
"SubCommands"="explorer;maxthon;|;cpanel;outlook;|;faststone;paintxp;|;others;run"
"Position"="Top"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\explorer]
@="Explorer"
"icon"="C:\\Windows\\explorer.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\explorer\command]
@="C:\\Windows\\explorer.exe C:\\Users\\stephen"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\maxthon]
@="Maxthon"
"icon"="C:\\Program Files (x86)\\Maxthon\\Maxthon.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\maxthon\command]
@="C:\\Program Files (x86)\\Maxthon\\Maxthon.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cpanel]
@="Control Panel"
"icon"="C:\\Windows\\System32\\control.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\cpanel\command]
@="C:\\Windows\\System32\\control.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\outlook]
@="Outlook Express"
"icon"="C:\\Program Files (x86)\\Microsoft Office\\Office14\\Outlook.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\outlook\command]
@="C:\\Program Files (x86)\\Microsoft Office\\Office14\\Outlook.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\faststone]
@="FastStone"
"icon"="C:\\Program Files (x86)\\FastStone Image Viewer\\FSViewer.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\faststone\command]
@="C:\\Program Files (x86)\\FastStone Image Viewer\\FSViewer.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\paintxp]
@="Paint (XP)"
"icon"="C:\\Program Files (x86)\\MSPaintXP\\mspaintxp.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\paintxp\command]
@="C:\\Program Files (x86)\\MSPaintXP\\mspaintxp.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\others]
@="other apps"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\others\command]
@="C:\\Windows\\explorer.exe C:\\Desktop\\apps"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\run]
@="Run"
"icon"="imageres.dll,-100"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\run\command]
@="RunDLL32 shell32.dll,#61"
Oh one thing I did learn is that you need to escape backslashes in reg scripts ie. \ becomes \\
My System SpecsSystem Spec