Что такое строковое значение ProgrammaticAccessOnly в реестре Windows и как оно работает?

это последующий вопрос от этот. Как показал этот ответ,ProgrammaticAccessOnly может использоваться для скрытия определенных пунктов контекстного меню без отключения их базовых или связанных функций.

таким образом, это кажется более полезным аналогом LegacyDisable строковое значение, в том, что он может быть использован для отключения функций реестра в менее разрушительным образом, чем LegacyDisable делает.

однако, как и многие другие значения реестра данных пары, фактическая документация о значении и как именно это работает, от Microsoft или других авторитетных источников, трудно найти. Все, что я смог найти за пределами разрозненных сообщений на форуме, - это следующее, от учебник здесь:

ProgrammaticAccessOnly-специальное значение, скрывающее пункт контекстного меню, но позволяющее программам обращаться к нему при необходимости.

это далеко не исчерпывающий, и я сомневаюсь, что объем значение ограничено контекстными меню. Например, ProgrammaticAccessOnly=Apartment подробно на хотя бы раз здесь, без объяснения, что он делает или другие типы данных.

как именно ProgrammaticAccessOnly строковый параметр в реестр? Есть ли какие-либо предостережения, чтобы всегда использовать его над LegacyDisable? Кроме того, что список всех возможных типов данных, которые можно использовать с ним?

23
задан Hashim
21.03.2023 23:38 Количество просмотров материала 3079
Распечатать страницу

1 ответ

Я ответил на ваш пост о LegacyDisable и иметь некоторые знания по этому вопросу. Поскольку в этом посте нет ответов, я постараюсь, хотя мой ответ может и не быть удовлетворительный.

проблема с этими элементами реестра является то, что они недокументированы. Каждая новая версия Windows может добавить еще несколько или сделать недействительными другие. Поскольку они не документированы, Microsoft сохраняет свободу свободно изменять все, что угодно, таким образом, бремя проверки того, работать или нет ложится на пользователей.

информация об этих элементах поступает от Microsoft во всех видах неофициального каналы. Иногда они находятся в образцах SDK или на MSDN, иногда на форуме ответы инженеров Microsoft, а иногда и от клиентов Microsoft, которые имели привилегии доступ к инженерам Microsoft.

Я нашел одного человека, который составил список всех известных подобных предметов в статье Тип Файла Registration, каждый с пояснение и ссылка на документацию. Неудивительно, что большинство элементов не имеют ссылок на документацию.

в отношении ProgrammaticAccessOnly, эта статья только говорит "Удаляет глагол из перечисления IContextMenu?", но не имеет ссылки на документацию.

поиск с помощью google, я нашел статья Winaero что говорит:

ProgrammaticAccessOnly делает основной трюк. Это специальный параметр который сообщает оболочке Проводника Windows, что контекстного меню доступен только программным обеспечением. Пользовательский интерфейс получает заблокирован, поэтому команда исчезает из контекстного меню!

вместе, кажется, что эти специальные элементы реестра распознаются интерфейс IContextMenu, which:

предоставляет методы, которые создают или объединяют связанное контекстное меню с помощью объекта оболочки.

интерфейс IContextMenu экспортируется обработчиками расширений оболочки, в основном используется Проводник Windows.

таким образом, наличие ProgrammaticAccessOnly вызывает оболочку перечисление для игнорирования элемента оболочки, но программы по-прежнему могут ссылаться и обновлять это через интерфейс IContextMenu или непосредственно путем изменения реестра.

5
отвечен harrymc 2023-03-23 07:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

context-menu
regedit
windows
windows-7
windows-registry
Вверх