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 LegacyDisable
does.
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?
ProgrammaticAccessOnly=Apartment
value inHKCR\*\shell\removeproperties
. Here is an article using that registry value link.ProgrammaticAccessOnly
registry in shell32.dll with IDA64. See this IMAGE. @ben-n may find this helpful just like this answer.