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
https://www.neowin.net/forum/topic/630809-create-custom-shell-folders/
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

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"

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

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

    • No registered users viewing this page.