Help Customizing This PC, Navigation Pane, and Control Panel


  1. Posts : 522
    Win7 Pro X64, Win10 Pro x640
       #1

    Help Customizing This PC, Navigation Pane, and Control Panel


    Good morning.

    I want to customize 64-bit Windows 10 This PC, This PC right-click menu, File Explorer Navigation Pane, and Control Panel by adding custom applets/shortcuts/folders.

    I modified registry files available from @Brink tutorials and uploaded as files to avoid a long post. I would like any critiques. Thank you.

    Add Administrative Tools to ThisPC Right-Click Menu_x64.reg Add_Advanced_User_Accounts_to_Control_Panel_x64.reg Add_User_Folder_to_Navigation_Pane_x64.reg Add_User_Folder_to_ThisPC_x64.reg

    Questions

    1. For 64-bit systems, I add GUIDs to HKCR\CLSID\{GUID} and HKCR\WOW6432Node\CLSID\{GUID} keys, right?

    2. Doing so automatically creates the corresponding keys in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\... and
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ right?

    3. The HKLM\Software\Microsoft\WIndows\CurrentVersion\Explorer keys are for all users and corresponding
    HKCU\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ keys are just for the current user, right?

    Thanks!
      My Computer


  2. Posts : 989
    Microsoft Windows 10 Home
       #2

    First, be aware that HKCR (HKEY_CLASSES_ROOT) is a virtual hive created by combining entries from:
    HKEY_CURRENT_USER\SOFTWARE\Classes
    and
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes





    1. For 64-bit systems, I add GUIDs to HKCR\CLSID\{GUID} and HKCR\WOW6432Node\CLSID\{GUID} keys, right?
    To err on the side of caution, yes. Though apparently not all entries need to be duplicated as evidenced by the key count:

    Code:
    PS C:\> (gci 'HKLM:\SOFTWARE\Classes\CLSID').count
    7319
    PS C:\> (gci 'HKLM:\SOFTWARE\Classes\\WOW6432Node\CLSID').count
    5667



    2. Doing so automatically creates the corresponding keys in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\

    ... and


    HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ right?
    That depends on the type of user account logged in when editing the registry. When an Admin account modifies HKCR, the changes affect HKLM\SOFTWARE\Classes. When a standard user account modifies HKCR, the changes affect HKCU\SOFTWARE\Classes




    3. The HKLM\Software\Microsoft\WIndows\CurrentVersion\Explorer keys are for all users and corresponding
    HKCU\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ keys are just for the current user, right?
    Almost. Probalby a copy/paste error, but the HKCU\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer key does not exist. The ...\WOW6432NodeMicrosoft\Windows\CurrentVersion\Explorer node is only found under HKLM.
      My Computer


  3. Posts : 522
    Win7 Pro X64, Win10 Pro x640
    Thread Starter
       #3

    KeithM said:
    First, be aware that HKCR (HKEY_CLASSES_ROOT) is a virtual hive created by combining entries from:
    HKEY_CURRENT_USER\SOFTWARE\Classes
    and
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes







    To err on the side of caution, yes. Though apparently not all entries need to be duplicated as evidenced by the key count:

    Code:
    PS C:\> (gci 'HKLM:\SOFTWARE\Classes\CLSID').count
    7319
    PS C:\> (gci 'HKLM:\SOFTWARE\Classes\\WOW6432Node\CLSID').count
    5667





    That depends on the type of user account logged in when editing the registry. When an Admin account modifies HKCR, the changes affect HKLM\SOFTWARE\Classes. When a standard user account modifies HKCR, the changes affect HKCU\SOFTWARE\Classes






    Almost. Probalby a copy/paste error, but the HKCU\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer key does not exist. The ...\WOW6432NodeMicrosoft\Windows\CurrentVersion\Explorer node is only found under HKLM.
    Thank you for your reply. Some follow-up questions/comments. I should have added in the original question that I have Administrative access for my account.

    1. When adding custom folders to This PC, Navigation Pane, Control Panel, etc., is it better to add GUIDs in the HKLM\Software\Classes and HKCU\Software\Classes groups or the HKCR hive?

    2. My user account has administrative access so modifications affect the HKLM\Software\Classes groups.

    3. Yes, copy/paste error. I indeed confirm that HKCU\software\WOW6432node does not exist, only present in the analogous HKLM hive.

    4. Did the registry files I added show up? Do they look ok?

    5. If I add UsersFolder to This PC or Navigation Pane for All Users, then my particular user folder will not show up for in other user accounts, right? Only those specific, respective user folders will show up, correct? In the context of adding User Folder, would this be better accomplished by adding entries in HKCR hive instead?

    Thanks!
      My Computer


  4. Posts : 989
    Microsoft Windows 10 Home
       #4

    1. When adding custom folders to This PC, Navigation Pane, Control Panel, etc., is it better to add GUIDs in the HKLM\Software\Classes and HKCU\Software\Classes groups or the HKCR hive?
    I think it's best to explicitly specify HKCU or HKLM when creating keys depending on whether you want them to be available to a specific user or all users. You can define a folder under HKLM with a profile-specific target by creating TargetFolderPath of HKLM\SOFTWARE\Classes\CLSID\<GUID>\Instance\InitPopertyBag as a REG_EXPAND_SZ type and a path defined with the %UserProfile% environmental variable:
    Help Customizing This PC, Navigation Pane, and Control Panel-screenshot-890-.png

    2. My user account has administrative access so modifications affect the HKLM\Software\Classes groups.
    Modifications to an existing entry via HKCR will affect the source location, which could be either HKCU or HKLM. Key/value creation will be under HKLM\SOFTWARE\Classes.

    5. If I add UsersFolder to This PC or Navigation Pane for All Users, then my particular user folder will not show up for in other user accounts, right? Only those specific, respective user folders will show up, correct? In the context of adding User Folder, would this be better accomplished by adding entries in HKCR hive instead?
    If you add an item to the machine-wide namespace, it's target should be aivailable to all users, either by virtue of a path that is accessible to all users or a path that is relative to the users's profile folder as described above.
      My Computer


  5. Posts : 522
    Win7 Pro X64, Win10 Pro x640
    Thread Starter
       #5

    Thank you for your reply.

    FYI, I am not a programmer and know very little about coding, and just a little bit about registry modification so I apologize if my questions are simple and pedantic.

    So if I understand you correctly, provided the account has administrative privileges, when adding custom folders to This PC, Navigation Pane or Control Panel, you prefer to add/modify the keys with the appropriate GUID in HLKM rather than HKCU, right?

    By doing so, the custom folders appear for all users, or, if targetfolderpath variable is defined along with a path to a user folder, the custom folder appears only for that user, correct?

    In the HKCR or HLKM - Classes\{GUID} keys, there are a number of sub-keys and variables I don't know what they do and documentation of registry editing is not plentiful. What do the instance, initpropertybag, inprocserver32 keys do? I know what defaulticon is, I think I know what sortorderindex does, but what does the attributes variable do? Is there a good resource for learning what these keys do?

    Thanks!



    KeithM said:
    I think it's best to explicitly specify HKCU or HKLM when creating keys depending on whether you want them to be available to a specific user or all users. You can define a folder under HKLM with a profile-specific target by creating TargetFolderPath of HKLM\SOFTWARE\Classes\CLSID\<GUID>\Instance\InitPopertyBag as a REG_EXPAND_SZ type and a path defined with the %UserProfile% environmental variable:
    Help Customizing This PC, Navigation Pane, and Control Panel-screenshot-890-.png



    Modifications to an existing entry via HKCR will affect the source location, which could be either HKCU or HKLM. Key/value creation will be under HKLM\SOFTWARE\Classes.



    If you add an item to the machine-wide namespace, it's target should be aivailable to all users, either by virtue of a path that is accessible to all users or a path that is relative to the users's profile folder as described above.
      My Computer


  6. Posts : 989
    Microsoft Windows 10 Home
       #6

    Where to create the CLSID should be decided by whether you want the folder to be available to one specific user or multiple users.

    If the former, you should define the CLSID and add it to the namespace under that user's HKCU key, by either using Load HIve... to access their <PrfilePath>\NTUSER.DAT file if logged in as Admin, or by logging in as the targeted user.

    If the latter, create the CLSID under HKLM. If you want it displayed to all users, add it to the namespace under HKLM. If you only want it displayed for select users, add it to their respective NIUSER.DAT/HKCU​ namespaces.



    As for the subkeys and their purpose, take none of the following as gospel, just my best undertanding.


    • InProcServer32 specifies what code library to use.
    • Instance specifies the class the item will be based on. If we look at the referenced CLSID, {0E5AAE11-A475-4c5b-AB00-C66DE400274E}, it defines a Shell File System Folder. PowerShell reveals a number of items reference this class:

    Code:
    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | out-null
    ( gci HKCR:\CLSID | ? { $_.GetSubkeyNames() -contains 'Instance' } | ? { $_.OpenSubkey('Instance').GetValue('CLSID') -eq '{0E5AAE11-A475-4c5b-AB00-C66DE400274E}' } ).Count

    • If you thnk of the instance as a function, then InitPropertyBag specifies the parameters of this particular fuction call, either a TargetFolderPath or TargetKnownFolder
    • ShellFolder\Attributes are SFGAO flags that control various aspects of folder behavior
    • Instance\InitPropertyBag\Attributes are File Attributes

    Though the title reference a cloud folder, this seems to be the best overview I've found:
    https://docs.microsoft.com/en-us/windows/win32/shell/integrate-cloud-storage
      My Computer


  7. Posts : 522
    Win7 Pro X64, Win10 Pro x640
    Thread Starter
       #7

    @KeithM

    I have had time over the holiday break to work on these registry entries. Can I PM you for further questions?

    Thanks!

    KeithM said:
    Where to create the CLSID should be decided by whether you want the folder to be available to one specific user or multiple users.

    If the former, you should define the CLSID and add it to the namespace under that user's HKCU key, by either using Load HIve... to access their <PrfilePath>\NTUSER.DAT file if logged in as Admin, or by logging in as the targeted user.

    If the latter, create the CLSID under HKLM. If you want it displayed to all users, add it to the namespace under HKLM. If you only want it displayed for select users, add it to their respective NIUSER.DAT/HKCU​ namespaces.



    As for the subkeys and their purpose, take none of the following as gospel, just my best undertanding.


    • InProcServer32 specifies what code library to use.
    • Instance specifies the class the item will be based on. If we look at the referenced CLSID, {0E5AAE11-A475-4c5b-AB00-C66DE400274E}, it defines a Shell File System Folder. PowerShell reveals a number of items reference this class:

    Code:
    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | out-null
    ( gci HKCR:\CLSID | ? { $_.GetSubkeyNames() -contains 'Instance' } | ? { $_.OpenSubkey('Instance').GetValue('CLSID') -eq '{0E5AAE11-A475-4c5b-AB00-C66DE400274E}' } ).Count

    • If you thnk of the instance as a function, then InitPropertyBag specifies the parameters of this particular fuction call, either a TargetFolderPath or TargetKnownFolder
    • ShellFolder\Attributes are SFGAO flags that control various aspects of folder behavior
    • Instance\InitPropertyBag\Attributes are File Attributes

    Though the title reference a cloud folder, this seems to be the best overview I've found:
    https://docs.microsoft.com/en-us/windows/win32/shell/integrate-cloud-storage
      My Computer


  8. Posts : 989
    Microsoft Windows 10 Home
       #8

    bamajon1974 said:
    @KeithM

    I have had time over the holiday break to work on these registry entries. Can I PM you for further questions?

    Thanks!
    Sure, for specific questions. But if the answer is likely to be useful to others as well, ask it in the forum.
      My Computer


  9. Posts : 522
    Win7 Pro X64, Win10 Pro x640
    Thread Starter
       #9

    KeithM said:
    Sure, for specific questions. But if the answer is likely to be useful to others as well, ask it in the forum.
    Will do this evening. I will post comments to the thread afterward. Please stay tuned.
    Thanks!
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 16:31.
Find Us




Windows 10 Forums