Create custom shell folders?


Recommended Posts

Hello,

I've changed the location of all my User folders (Contacts, Desktop, Music etc) to my external hard drive root folder. I've got a couple of other folders on that external HD which, obviously, don't appear when I click on my username in start menu/places bar etc.

Is there any way to add custom shell folders so that they appear in my User folder so that I can then change the location of them?

Link to comment
Share on other sites

  • 1 year later...

Hi,

I didn't find a good custom shell folder tutorial with the right registry settings, so I share mine with a Desktop icon, a Start Menu entry and a Folder Option checkbox.

This custom shell folder is usable in Explorer (browsable like My Documents)

{4c64f810-31ec-11db-a98b-0800200c9a66} is a ClassID given by a GUID generator.

You can call this custom shell folder by his ClassID. ex. : "explorer /e,::{4c64f810-31ec-11db-a98b-0800200c9a66}"

If you know how to add a checkbox in Display Properties same as My Documents got, please tell me.

Windows Registry Editor Version 5.00

; Custom shell folder name : "Home" (REG_EXPAND_SZ)
[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}]
@=hex(2):48,00,6F,00,6D,00,65,00,00,00
"SortOrderIndex"=dword:00000047

; Custom shell folder icon : "%SystemRoot%\\system32\\SHELL32.dll,150" (REG_EXPAND_SZ)
[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,00,76,00,65,\
  00,25,00,5c,00,41,00,70,00,70,00,6c,00,69,00,63,00,61,00,74,00,69,00,6f,00,\
  6e,00,73,00,5c,00,69,00,63,00,6f,00,6e,00,73,00,5c,00,41,00,70,00,70,00,6c,\
  00,69,00,63,00,61,00,74,00,69,00,6f,00,6e,00,73,00,2e,00,69,00,63,00,6f,00,\
  00,00

; Custom shell folder required settings : "%SystemRoot%\system32\shdocvw.dll" (REG_EXPAND_SZ)
[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}\Instance]
"CLSID"="{0AFACED1-E828-11D1-9187-B532F1E9575D}"

; Custom shell folder real path (REG_SZ)
[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}\Instance\InitPropertyBag]
"Target"="D:\\Home"

; Custom shell folder attributes : 
; 0xf0000000: SFGAO_FILESYSANCESTOR(1),SFGAO_FOLDER(2),SFGAO_FILESYSTEM(4),SFGAO_HASSUBFOLDER(8)
; 0x08000000: SFGAO_BROWSABLE(8)
; 0x00800000: SFGAO_STORAGEANCESTOR(8)
; 0x00000100: SFGAO_DROPTARGET(1)
; 0x00000010: SFGAO_CANRENAME(1)
; 0x0000000d: SFGAO_CANLINK(4),SFGAO_STORAGE(8)
[HKEY_CLASSES_ROOT\CLSID\{4c64f810-31ec-11db-a98b-0800200c9a66}\ShellFolder]
"Attributes"=dword:f880011d
"WantsFORPARSING"=""

; Show the custom shell folder icon on the Destop
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{4c64f810-31ec-11db-a98b-0800200c9a66}"=dword:00000000

; Custom shell folder checkbox in the Folder Options
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\CustomFolderOnDesktop]
"CheckedValue"=dword:00000000
"DefaultValue"=dword:00000000
"HKeyRoot"=dword:80000001
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons\\NewStartPanel"
"Text"="Show the Custom Shell Folder on the Desktop"
"Type"="checkbox"
"ValueName"="{4c64f810-31ec-11db-a98b-0800200c9a66}"
"UncheckedValue"=dword:00000001

; Add the custom shell folder to the Desktop
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{4c64f810-31ec-11db-a98b-0800200c9a66}]
@="CustomShellFolder"

Windows Registry Editor Version 5.00

; Use OEMLink as custom shell folder entry in the Start Menu
; Custom shell folder name (REG_SZ)
[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}]
@="Home"

; Custom shell folder icon (REG_SZ)
[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\DefaultIcon]
@="%SystemRoot%\\system32\\SHELL32.dll,150"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\Instance]
"CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}"

; Call the custom shell folder by using his ClassID : "::{4c64f810-31ec-11db-a98b-0800200c9a66}"
[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\Instance\InitPropertyBag]
"CLSID"="{13709620-C279-11CE-A49E-444553540000}"
"method"="ShellExecute"
"Command"="&Open"
"Param1"="::{4c64f810-31ec-11db-a98b-0800200c9a66}"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex]

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\shellex\MayChangeDefaultMenu]
@=""

[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\ShellFolder]
"Attributes"=dword:00000000

; Custom shell folder checkbox in Advanced from Start Menu Properties
; Text = custom shell folder name
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\ShowOEMLink]
"CheckedValue"=dword:00000001
"DefaultValue"=dword:00000001
"HKeyRoot"=dword:80000001
"NoOEMLinkInstalled"=dword:00000000
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
"Text"="Home"
"Type"="checkbox"
"UncheckedValue"=dword:00000000
"ValueName"="Start_ShowOEMLink"

; Custom shell folder policy (NoOEMLinkInstalled)
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\ShowOEMLink\Policy\NoOEMLinkInstalled]
"RegKey"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartMenu\\StartPanel\\ShowOEMLink"

; Show the custom shell folder in the Start Menu
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Start_ShowOEMLink"=dword:00000001

Link to comment
Share on other sites

Thank you :) !

This custom shell folder is based on the Font shell folder.

If you need to target to a subfolder from Shell Special Folder, please use TargetSpecialFolder and Target like it's explain on this MSDN page :

http://msdn.microsoft.com/library/ms997573.aspx

Here the Shell Special Folder codes :

http://msdn.microsoft.com/library/bb774096.aspx

About the attributes, here the SFGAO codes :

http://msdn.microsoft.com/library/bb762589.aspx

ex. :

Shell Special Folder code (0x24) is WINDOWS folder ( %windir% or %SystemRoot% ), so the target is Fonts folder in the WINDOWS folder.

HKEY_CLASSES_ROOT
  CLSID
    {D20EA4E1-3957-11D2-A40B-0C5020524152}=REG_SZ:"Fonts"
      InfoTip=REG_SZ:"Displays and manages fonts on your computer"
      DefaultIcon=REG_EXPAND_SZ:"%SystemRoot%\system32\main.cpl,9"
      InProcServer32=REG_EXPAND_SZ:"%SystemRoot%\system32\shdocvw.dll"
        ThreadingModel=REG_SZ:"Apartment"
      ShellFolder
        Attributes=REG_DWORD:0x60000000
        WantsFORPARSING=REG_SZ:""
      Instance
        CLSID=REG_SZ:"{0AFACED1-E828-11D1-9187-B532F1E9575D}"
        InitPropertyBag
          TargetSpecialFolder=REG_SZ:"0x0024"
          Target=REG_SZ:"Fonts"

Link to comment
Share on other sites

About the Start Menu entry, you can also replace "Set Program Access and Defaults" if you NEVER use it.

Windows Registry Editor Version 5.00

; Use "Set Program Access and Defaults" as custom shell folder entry in the Start Menu
; Custom shell folder name (REG_SZ)
[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}]
@="Home"

; Custom shell folder icon (REG_SZ)
[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\DefaultIcon]
@="%SystemRoot%\\system32\\SHELL32.dll,150"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\InProcServer32]

@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\Instance]
"CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}"

; Call the custom shell folder by using his ClassID : "::{4c64f810-31ec-11db-a98b-0800200c9a66}"
[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\Instance\InitPropertyBag]
"CLSID"="{13709620-C279-11CE-A49E-444553540000}"
"method"="ShellExecute"
"Command"="&Open"
"Param1"="::{4c64f810-31ec-11db-a98b-0800200c9a66}"

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\shellex]

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\shellex\ContextMenuHandlers\
{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\shellex\MayChangeDefaultMenu]
@=""

[HKEY_CLASSES_ROOT\CLSID\{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0}\ShellFolder]
"Attributes"=dword:00000000

; Custom shell folder checkbox in Advanced from Start Menu Properties
; Text = custom shell folder name
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\ShowSetProgramAccessAndDefaults]
"CheckedValue"=dword:00000001
"DefaultValue"=dword:00000001
"HKeyRoot"=dword:80000001
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
"Text"="Home"
"Type"="checkbox"
"UncheckedValue"=dword:00000000
"ValueName"="Start_ShowSetProgramAccessAndDefaults"

; Custom shell folder policy (NoSMConfigurePrograms)
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel\ShowSetProgramAccessAndDefaults\Policy\NoSMConfigurePrograms]
"RegKey"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartMenu\\StartPanel\\ShowSetProgramAccessAndDefaults"

; Show the custom shell folder in the Start Menu
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\
Advanced]
"Start_ShowSetProgramAccessAndDefaults"=dword:00000001

; Hide Set Program Access and Defaults in Add/Remove Programs
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Uninstall]
"NoChooseProgramsPage"=dword:00000001

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.