This is a follow-up question from this one. As demonstrated by that answer,
ProgrammaticAccessOnly can be used to hide certain context menu items without disabling their underlying or related functions.
In this way, it seems like a more useful analogue to the
LegacyDisable string value, in that it can be used to disable registry functions in a less destructive way than
However, as with many other Registry value-data pairs, actual documentation on the value and how exactly it works, from Microsoft or other authoritative sources, are hard to come by. All I've been able to find outside of disparate forum posts is the following, from a tutorial here:
ProgrammaticAccessOnly is a special value that hides a context menu entry but allows programs to access it if required.
This is far from comprehensive, and I doubt the value's scope is limited to context menus. For example,
ProgrammaticAccessOnly=Apartment is detailed at least once here, with no explanation of what it does or other data types.
How exactly does the
ProgrammaticAccessOnly string value in the Registry work? Are there any caveats to always using it over
LegacyDisable? Also, what is a list of all the possible data types that can be used with it?