Search code examples
windowsregistryguidexplorerclsid

Error with a custom folder


I've been working on this for days but still cannot figure out how to do this: creating a custom folder.

Here's some information that I used:

The major difference between the goal of these links and me is the fact that I am not trying to pin my folder to somewhere else. The only thing that I want to do is to create a redirect to a folder's subdirectory.

Here's my simple diagram: Diagram of the Main Directory

So if I open Main Directory(the yellow part), desktop.ini and the system attribute of Main Directory will call up my custom CLSID (Explanation) and redirect my access to Redirect Folder automatically. My custom CLSID will also add an option in the context menu(the list that appears when right-clicked) to execute a .cmd file. The .cmd file will enable the user to access Hidden Folder when the correct password is typed.

So here're my registry keys:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}] @=""

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\DefaultIcon] @=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,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\ 65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,34,00,00,\ 00

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\InProcServer32] @="shell32.dll" "ThreadingModel"="ApartMent"

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\Instance] "CLSID"="{0E5AAE11-A475-4c5b-AB00-C66DE400274E}"

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\Instance\InitPropertyBag] "TargetFolderPath"="C:\Custom\Location\to\the\Main\Directory"

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\Shell]

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\Shell\Open Vault]

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\Shell\Open Vault\Command] @="cmd /c Open.cmd"

[HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\ShellFolder] "Attributes"=dword:00000000

It looked like this would work just as intended, but it had a flaw: my Main Directory did not actually redirect me to Redirect Folder. Here's my evidence:

  • When I right-clicked, every creating option was gone (Create new folder, text file, etc.)
  • When I create a file using a 3rd party software that was in the context menu, it did not create the file in Redirect folder but instead in Main Directory
  • Most importantly, when I Shift + right clicked and opened a command prompt, it showed my current directory as Main Directory instead of Redirect Folder

So what I'm trying to ask is this: how do I completely redirect my Main Directory access to Redirect Folder and keep my Hidden Folder opening option in the context menu?


Solution

  • I do not know how this works, but I found a way around.

    [HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\shellex]

    [HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\shellex{000214EE-0000-0000-C000-000000000046}] @="{0AFACED1-E828-11D1-9187-B532F1E9575D}"

    [HKEY_CLASSES_ROOT\CLSID{a79ff1d1-166e-4f20-967f-5aa2a0c19cd0}\shellex{000214F9-0000-0000-C000-000000000046}] @="{0AFACED1-E828-11D1-9187-B532F1E9575D}"

    The first step is to add above lines to the Registry.

    After adding these, I created a shortcut file(.lnk) of a random folder(excluding self and some other special folders).

    When I moved the .lnk file to the Main folder, I could access to create new option from my context menu.