Поделиться через


Регистрация статического контекстного меню

Оснастки mmC администратора служб домен Active Directory и оболочки Windows предоставляют механизм добавления элемента в контекстное меню, отображаемое для объектов в службах домен Active Directory. Контекстное меню может вызывать любой файл, который можно запустить с API ShellExecute , например URL-адрес приложения или веб-страницы.

Регистрация в службах домен Active Directory

Регистрация расширения контекстного меню зависит от одного языкового стандарта. Если расширение контекстного меню применяется ко всем языковым стандартам, оно должно быть зарегистрировано в объекте displaySpecifier во всех подконтейнерах языкового стандарта в контейнере описателей отображения. Если расширение контекстного меню локализовано для определенного языкового стандарта, оно должно быть зарегистрировано в объекте displaySpecifier в этом подконтейнере языкового стандарта. Дополнительные сведения о контейнере и языковых стандартах описателей отображения см. в разделе "Описатели отображения" и "Контейнер displaySpecifiers".

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

Атрибут adminContextMenu определяет контекстные меню администратора для отображения в административных оснастках служб домен Active Directory. Контекстное меню отображается, когда пользователь отображает контекстное меню для объектов соответствующего класса в одном из оснастки MMC администрирования.

Атрибут shellContextMenu определяет контекстные меню конечных пользователей для отображения в оболочке Windows. Контекстное меню отображается, когда пользователь просматривает контекстное меню для объектов соответствующего класса в Windows Обозреватель. Начиная с Windows Server 2003 оболочка Windows больше не отображает объекты из служб домен Active Directory.

Все эти атрибуты являются многозначными.

При регистрации статического контекстного меню значения атрибутов adminContextMenu и shellContextMenu требуют следующего формата.

<order number>,<menu text>,<command>

"<Номер заказа" — это неподписанный номер>, представляющий позицию элемента в контекстном меню. При отображении контекстного меню значения сортируются по сравнению< с "номером> заказа". Если несколько значений имеют одинаковый "<номер> заказа", эти расширения контекстного меню загружаются в том порядке, в который они считываются с сервера Active Directory. Если это возможно, используйте не существующий "<номер> заказа", то есть тот, который не использовался другими значениями в свойстве. Нет предписанной начальной позиции, и пробелы разрешены в последовательности "<порядковый номер>".

<Текст меню> — это строка, отображаемая в контекстном меню. <Текст меню> может содержать один символ "&", предшествующий сочетанию клавиш для элемента меню. Это приведет к подчеркиванием предшествуемого символа. Например, если< "текст> меню" имеет значение "&File", текст меню будет отображаться как "Файл", значение "F" будет подчеркиваться, и "F" будет сочетание клавиш для элемента меню.

Команда<> — это программа или файл, выполняемый оснасткой. Либо полный путь должен быть указан, либо файл должен существовать в переменной среды пути компьютера. Файл вызывается с помощью функции ShellExecute. Команда<> не может содержать дополнительные параметры, например Блокнот.exe Myfile.txt. Так как используется ShellExecute, любой файл или адрес, которые можно передать в ShellExecute, можно использовать для команды<>. Например, если "<command>" содержит "d:\file.txt", d:\file.txt будет открыт с приложением, связанным с расширением .txt. Аналогичным образом, если "<command>" содержит "https://www.fabrikam.com", веб-браузер по умолчанию открывается и отобразит указанную веб-страницу. Разрешены пути и имена приложений с пробелами. Если "<команда>" является приложением, выбранный объект ADsPath и класс передаются в качестве аргументов командной строки, разделенных пробелом.

В оболочке Windows поддерживаются элементы контекстного меню с несколькими выборами. В этом случае вызывается команда<> для каждого выбранного объекта. В оснастки администрирования служб домен Active Directory элементы контекстного меню с несколькими выборами не поддерживаются.

Важно!

Для оболочки Windows данные описателя отображения извлекаются при входе пользователя и кэшируются для сеанса пользователя. Для административных оснастки данные описателя отображения извлекаются при загрузке оснастки и кэшируются в течение длительности процесса. Для оболочки Windows это означает, что изменения для отображения описателей вступили в силу после того, как пользователь выключает и снова возвращается. Для административных оснастки изменения вступают в силу при перезагрузке оснастки или консольного файла; То есть при запуске нового экземпляра файла консоли или нового экземпляра Mmc.exe и добавлении оснастки, извлекаются последние данные описателя отображения.

 

Дополнительные сведения и пример кода см . в примере кода для установки элемента статического контекстного меню.