Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контекстное меню является одним из самых популярных и полезных расширений оболочки. Если вы уже находитесь в проводнике или на рабочем столе, это значительно сокращает количество шагов для выполнения операции файла по сравнению с открытием отдельного приложения.
Если классическое приложение реализует устаревший интерфейс IContextMenu для расширений оболочки, таких как обработчик контекстного меню или обработчик перетаскивания, расширение оболочки может не работать после упаковки приложения. Чтобы оболочка распознала и регистрирует расширение, необходимо изменить файл манифеста пакета. (Эта функция доступна в сборке Windows 11 22000+, которая в настоящее время доступна через сборки программы предварительной оценки Windows )
Добавьте пространство имен com и расширение windows.comServer для shellex dll.
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
Ниже приведен пример фрагмента кода:
<com:Extension Category="windows.comServer"> <com:ComServer> <com:SurrogateServer DisplayName="<display-name-for-the-com-server>"> <com:Class Id="<GUID-for-the-com-server>" Path="<path-to-the-com-server-or-dll>" ThreadingModel="STA" /> </com:SurrogateServer> </com:ComServer> </com:Extension>
Добавьте пространство имен desktop9 и расширение windows.fileExplorerClassicContextMenuHandler или windows.fileExplorerClassicDragDropContextMenuHandler
xmlns:desktop9="http://schemas.microsoft.com/appx/manifest/desktop/windows10/9"
Ниже приведен пример фрагмента кода:
<desktop9:Extension Category="windows.fileExplorerClassicContextMenuHandler"> <desktop9:FileExplorerClassicContextMenuHandler> <desktop9:ExtensionHandler Type="*" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type=".txt" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" /> </desktop9:FileExplorerClassicContextMenuHandler> </desktop9:Extension> <desktop9:Extension Category="windows.fileExplorerClassicDragDropContextMenuHandler"> <desktop9:FileExplorerClassicDragDropContextMenuHandler> <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type="Drive" Clsid="<GUID-for-the-com-server>" /> </desktop9:FileExplorerClassicDragDropContextMenuHandler> </desktop9:Extension>
Измените MaxVersionTested, чтобы оно было больше 10.0.21300.0
Ниже приведен пример фрагмента кода:
<Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.21301.0" /> </Dependencies>
Замечание
Если вы реализуете расширения оболочки вместо упаковки существующего классического приложения с устаревшей реализацией IContextMenu , мы рекомендуем реализовать интерфейс IExplorerCommand и использовать desktop4:FileExplorerContextMenus . Дополнительные сведения см. здесь .