Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если ваше настольное приложение упаковано (имеет идентификатор пакета во время выполнения), вы можете интегрировать его с Windows, используя предопределенные расширения в манифесте пакета. Также см. Функции, требующие идентичности пакета.
Например, используйте расширение для создания исключения брандмауэра; сделайте приложение приложением по умолчанию для типа файла; или наведите указатель на плитки "Пуск" в приложение. Чтобы использовать расширение, просто добавьте xml в файл манифеста пакета приложения. Код не требуется.
В этом разделе описываются эти расширения и задачи, которые можно выполнить с помощью этих расширений.
Замечание
Функции, описанные в этом разделе, требуют, чтобы ваше приложение было упаковано (то есть имело идентификатор пакета во время выполнения). Это включает упакованные приложения (см. раздел Создание нового проекта для упакованного приложения для настольной среды WinUI 3) и упакованные приложения с внешним расположением (см. раздел Предоставление идентификации пакета путем упаковки с внешним расположением). Также см. Функции, требующие идентичности пакета.
Переход пользователей в приложение
Помогите пользователям перейти в упакованое приложение.
- Перенаправьте ваше настольное приложение на ваше упакованное приложение
- Укажите существующие плитки 'Пуск' и кнопки панели задач на ваше упакованное приложение
- Сделайте так, чтобы ваше упакованное приложение открывало файлы вместо вашего настольного приложения
- Связывание упакованного приложения с набором типов файлов
- Добавление параметров в контекстное меню файлов с определенным типом файла
- Открытие определенных типов файлов непосредственно с помощью URL-адреса
Перенаправление существующего классического приложения в упакованое приложение
Когда пользователи запускают ваше существующее непакованное настольное приложение, вы можете настроить открытие упакованного приложения вместо него.
Замечание
Эта функция поддерживается в сборке Предварительной версии Windows 21313 и более поздних версиях.
Чтобы включить это поведение, выполните указанные ниже действия.
- Добавьте записи в реестре для перенаправления исполняемого файла непакованного приложения к упакованному приложению.
- Зарегистрируйте упакованное приложение, чтобы оно запускалось при запуске исполняемого файла неупакованного настольного приложения.
Добавьте записи реестра, чтобы перенаправить исполняемый файл неупакованного настольного приложения
- В реестре создайте подраздел с именем исполняемого файла вашего настольного приложения под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
- В этом подразделе добавьте следующие значения:
- AppExecutionAliasRedirect (DWORD): если задано значение 1, система проверяет расширение пакета AppExecutionAlias с тем же именем, что и исполняемый файл. Если расширение AppExecutionAlias включено, упаковаемое приложение будет активировано с помощью этого значения.
- AppExecutionAliasRedirectPackages (REG_SZ): система будет перенаправлена только на перечисленные пакеты. Пакеты перечислены по имени семейства пакетов, разделенным точкой с запятой. Если используется специальное значение *, система будет перенаправлена на AppExecutionAlias из любого пакета.
Рассмотрим пример.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\contosoapp.exe
AppExecutionAliasRedirect = 1
AppExecutionAliasRedirectPackages = "Microsoft.WindowsNotepad_8weky8webbe"
Зарегистрируйте упакованное приложение для запуска
В манифесте пакета добавьте расширение AppExecutionAlias, которое регистрирует имя исполняемого файла неупакованного настольного приложения. Рассмотрим пример.
<Package
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap3">
<Applications>
<Application>
<Extensions>
<uap3:Extension Category="windows.appExecutionAlias" EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="contosoapp.exe" />
</uap3:AppExecutionAlias>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Отключение перенаправления
Пользователи могут отключить перенаправление и запустить исполняемый файл неупакованного приложения с помощью следующих параметров:
- Они могут удалить упаковаемую версию приложения.
- Пользователь может отключить запись AppExecutionAlias для упакованного приложения в разделе псевдонимов выполнения приложений в Параметрах.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/desktop/windows10
Элементы и атрибуты этого расширения
<uap3:Extension
Category="windows.appExecutionAlias"
EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="[AliasName]" />
</uap3:AppExecutionAlias>
</uap3:Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.appExecutionAlias . |
исполняемый файл | Относительный путь к исполняемому файлу для запуска при вызове псевдонима. |
Псевдоним | Короткое имя приложения. Он всегда должен заканчиваться расширением ".exe". |
Указание существующих плиток "Пуск" и кнопок панели задач в упаковаированное приложение
Ваши пользователи могли закрепить ваше настольное приложение на панели задач или в меню "Пуск". Эти сочетания клавиш можно указать в новом упакованом приложении.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3
Элементы и атрибуты этого расширения
<Extension Category="windows.desktopAppMigration">
<DesktopAppMigration>
<DesktopApp AumId="[your_app_aumid]" />
<DesktopApp ShortcutPath="[path]" />
</DesktopAppMigration>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.desktopAppMigration . |
AumID | Идентификатор модели пользователя приложения упаковаемого приложения. |
ЯрлыкPath | Путь к .lnk файлам, запускающим версию приложения для настольного компьютера. |
Пример
<Package
xmlns:rescap3="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3"
IgnorableNamespaces="rescap3">
<Applications>
<Application>
<Extensions>
<rescap3:Extension Category="windows.desktopAppMigration">
<rescap3:DesktopAppMigration>
<rescap3:DesktopApp AumId="[your_app_aumid]" />
<rescap3:DesktopApp ShortcutPath="%USERPROFILE%\Desktop\[my_app].lnk" />
<rescap3:DesktopApp ShortcutPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\[my_app].lnk" />
<rescap3:DesktopApp ShortcutPath="%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\[my_app_folder]\[my_app].lnk"/>
</rescap3:DesktopAppMigration>
</rescap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Связанный пример
средство просмотра рисунков WPF с переходом, миграцией и удалением
Настройте ваше упакованное приложение так, чтобы оно открывало файлы вместо настольного приложения
Вы можете убедиться, что пользователи по умолчанию открывают новое упаковаемое приложение для определенных типов файлов вместо открытия классической версии приложения.
Для этого вам потребуется указать программный идентификатор (ProgID) каждого приложения, от которого требуется наследовать сопоставления файлов.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<MigrationProgIds>
<MigrationProgId>"[ProgID]"</MigrationProgId>
</MigrationProgIds>
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
MigrationProgId | программный идентификатор (ProgID), описывающий приложение, компонент и версию настольного приложения, из которого вы хотите унаследовать сопоставления файлов. |
Пример
<Package
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:rescap3="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3"
IgnorableNamespaces="uap3, rescap3">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes">
<rescap3:MigrationProgIds>
<rescap3:MigrationProgId>Foo.Bar.1</rescap3:MigrationProgId>
<rescap3:MigrationProgId>Foo.Bar.2</rescap3:MigrationProgId>
</rescap3:MigrationProgIds>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Связанный пример
средство просмотра рисунков WPF с переходом, миграцией и удалением
Связывание упакованного приложения с набором типов файлов
Упакованное приложение можно связать с расширениями типов файлов. Если пользователь щелкает правой кнопкой мыши файл в проводнике и выбирает параметр "Открыть с помощью", приложение появится в списке предложений. Дополнительную информацию об использовании этого расширения см. в статье Интеграция упакованного классического приложения с Проводником.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<SupportedFileTypes>
<FileType>"[file extension]"</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
Тип файла | Расширение файла, поддерживаемого приложением. |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap, uap3">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="mediafiles">
<uap:SupportedFileTypes>
<uap:FileType>.avi</uap:FileType>
</uap:SupportedFileTypes>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Связанный пример
средство просмотра рисунков WPF с переходом, миграцией и удалением
Добавление параметров в контекстное меню файлов с определенным типом файла
Это расширение позволяет добавлять параметры в контекстное меню, отображающееся при щелчке правой кнопкой мыши файла в проводнике. Эти параметры предоставляют пользователям другие способы взаимодействия с файлом, например печать, редактирование или просмотр файла. Дополнительную информацию об использовании этого расширения см. в статье Интеграция упакованного классического приложения с Проводником.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/2
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<SupportedVerbs>
<Verb Id="[ID]" Extended="[Extended]" Parameters="[parameters]">"[verb label]"</Verb>
</SupportedVerbs>
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
Глагол | Имя, отображаемое в контекстном меню Проводника. Эта строка локализуемая и использует ms-resource . |
Идентификатор | Уникальный идентификатор глагола. Если ваше приложение является приложением UWP, это передается приложению в рамках событий его активации, чтобы оно смогло соответствующим образом обрабатывать выбор пользователя. Если ваше приложение является пакетным приложением с полным доверием, оно получает параметры (см. следующий пункт). |
Параметры | Список параметров и значений аргументов, связанных с глаголом. Если ваше приложение является пакетным приложением с полным доверием, эти параметры передаются в приложение в виде аргументов события при активации приложения. Поведение приложения можно настроить на основе различных команд активации. Если переменная может содержать путь к файлу, заключите значение параметра в кавычки. Это позволит избежать проблем, возникающих в тех случаях, когда путь включает пробелы. Если приложение является приложением UWP, невозможно передать параметры. Приложение получает идентификатор (см. предыдущий пункт). |
Расширенный | Указывает, что команда отображается только в том случае, если пользователь отображает контекстное меню, удерживая клавишу SHIFT , прежде чем щелкнуть файл правой кнопкой мыши. Этот атрибут является необязательным и по умолчанию имеет значение False (например, всегда отображать глагол), если он не указан. Это поведение вы указываете индивидуально для каждого глагола (за исключением "Открыть", который всегда False). |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap, uap2, uap3">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes">
<uap2:SupportedVerbs>
<uap3:Verb Id="Edit" Parameters="/e "%1"">Edit</uap3:Verb>
<uap3:Verb Id="Print" Extended="true" Parameters="/p "%1"">Print</uap3:Verb>
</uap2:SupportedVerbs>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Связанный пример
средство просмотра рисунков WPF с переходом, миграцией и удалением
Открытие определенных типов файлов непосредственно с помощью URL-адреса
Вы можете убедиться, что пользователи по умолчанию открывают новое упаковаемое приложение для определенных типов файлов вместо открытия классической версии приложения.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]" UseUrl="true" Parameters="%1">
<SupportedFileTypes>
<FileType>"[FileExtension]"</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
UseUrl | Указывает, следует ли открывать файлы непосредственно из целевого URL-адреса. Если это значение не задано, попытка приложения открыть файл с помощью URL-адреса приведет к тому, что система сначала скачивает файл локально. |
Параметры | Необязательные параметры. |
Тип файла | Соответствующие расширения файлов. |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap, uap3">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes" UseUrl="true" Parameters="%1">
<uap:SupportedFileTypes>
<uap:FileType>.txt</uap:FileType>
<uap:FileType>.doc</uap:FileType>
</uap:SupportedFileTypes>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Выполнение задач установки
Создание исключения брандмауэра для приложения
Если приложению требуется обмен данными через порт, вы можете добавить приложение в список исключений брандмауэра.
Замечание
Чтобы использовать категорию расширения windows.firewallRules (см. ниже), вашему пакету необходима функция ограниченного уровня разрешений полного доверия . См. список ограниченных возможностей.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10/2
Элементы и атрибуты этого расширения
<Extension Category="windows.firewallRules">
<FirewallRules Executable="[executable file name]">
<Rule
Direction="[Direction]"
IPProtocol="[Protocol]"
LocalPortMin="[LocalPortMin]"
LocalPortMax="LocalPortMax"
RemotePortMin="RemotePortMin"
RemotePortMax="RemotePortMax"
Profile="[Profile]"/>
</FirewallRules>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.firewallRules |
исполняемый файл | Имя исполняемого файла, который требуется добавить в список исключений брандмауэра. |
Направление | Указывает, является ли правило входящим или исходящим правилом. |
IP-протокол | Протокол связи |
LocalPortMin | Более низкий номер порта в диапазоне номеров локальных портов. |
LocalPortMax | Максимальный номер порта диапазона номеров локальных портов. |
RemotePortMax | Более низкий номер порта в диапазоне номеров удаленных портов. |
RemotePortMax | Максимальное число портов диапазона номеров удаленных портов. |
Профиль | Тип сети |
Пример
<Package
xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2"
IgnorableNamespaces="desktop2">
<Extensions>
<desktop2:Extension Category="windows.firewallRules">
<desktop2:FirewallRules Executable="Contoso.exe">
<desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all"/>
<desktop2:Rule Direction="in" IPProtocol="UDP" LocalPortMin="1337" LocalPortMax="1338" Profile="domain"/>
<desktop2:Rule Direction="in" IPProtocol="UDP" LocalPortMin="1337" LocalPortMax="1338" Profile="public"/>
<desktop2:Rule Direction="out" IPProtocol="UDP" LocalPortMin="1339" LocalPortMax="1340" RemotePortMin="15"
RemotePortMax="19" Profile="domainAndPrivate"/>
<desktop2:Rule Direction="out" IPProtocol="GRE" Profile="private"/>
</desktop2:FirewallRules>
</desktop2:Extension>
</Extensions>
</Package>
Поместите dll-файлы в любую папку пакета
Используйте расширение uap6:LoaderSearchPathOverride, чтобы объявить до пяти путей папок в пакете приложения относительно его корневого пути, которые будут использоваться загрузчиком для поиска процессов приложения.
Порядок поиска библиотеки DLL для приложений Windows включает пакеты в график зависимостей пакета, если пакеты имеют разрешения на выполнение. По умолчанию включаются основные, необязательные и пакеты фреймворка, однако это можно изменить с помощью элемента uap6:AllowExecution в манифесте пакета.
Пакет, включенный в порядок поиска библиотеки DLL, по умолчанию включает его эффективный путь. См. свойство EffectivePath (WinRT) и перечисление PackagePathType (Win32) для получения дополнительной информации об эффективных путях.
Если пакет задает uap6:LoaderSearchPathOverride, то эти сведения используются вместо эффективного пути пакета.
Каждый пакет может содержать только одно расширение uap6:LoaderSearchPathOverride . Это значит, что вы можете добавить один из них в ваш основной пакет, а затем добавить по одному в каждый из дополнительных пакетов и связанные наборы.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/6
Элементы и атрибуты этого расширения
Объявите это расширение на уровне пакета манифеста приложения.
<Extension Category="windows.loaderSearchPathOverride">
<LoaderSearchPathOverride>
<LoaderSearchPathEntry FolderPath="[path]"/>
</LoaderSearchPathOverride>
</Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.loaderSearchPathOverride . |
Путь к папке | Путь к папке, содержащей файлы DLL. Укажите путь, относительный к корневой папке пакета. Можно указать до пяти путей в одном расширении. Если вы хотите, чтобы система искала файлы в корневой папке пакета, используйте пустую строку для одного из этих путей. Не включайте повторяющиеся пути и убедитесь, что пути не содержат начальные и конечные косые черты или обратные косые черты. Система не будет искать вложенные папки, поэтому обязательно перечислите каждую папку, содержащую dll-файлы, которые требуется загрузить системой. |
Пример
<Package
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/6"
IgnorableNamespaces="uap6">
...
<Extensions>
<uap6:Extension Category="windows.loaderSearchPathOverride">
<uap6:LoaderSearchPathOverride>
<uap6:LoaderSearchPathEntry FolderPath=""/>
<uap6:LoaderSearchPathEntry FolderPath="folder1/subfolder1"/>
<uap6:LoaderSearchPathEntry FolderPath="folder2/subfolder2"/>
</uap6:LoaderSearchPathOverride>
</uap6:Extension>
</Extensions>
...
</Package>
Интеграция с Файловым проводником
Помогите пользователям упорядочивать файлы и взаимодействовать с ними знакомыми способами.
- Определение поведения приложения при выборе и открытии нескольких файлов одновременно
- Отображение содержимого файла в виде эскиза в Проводнике
- Показать содержимое файла в области предварительного просмотра Проводника
- Разрешить пользователям группировать файлы с помощью столбца Kind в проводнике
- Сделать свойства файла доступными для поиска, индекса, диалогов свойств и области сведений
- Указание обработчика контекстного меню для типа файла
- Сделайте файлы из облачного сервиса видимыми в Проводнике
Определение поведения приложения при выборе и открытии нескольких файлов одновременно
Укажите поведение приложения при одновременном открытии нескольких файлов.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/2
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]" MultiSelectModel="[SelectionModel]">
<SupportedVerbs>
<Verb Id="Edit" MultiSelectModel="[SelectionModel]">Edit</Verb>
</SupportedVerbs>
<SupportedFileTypes>
<FileType>"[FileExtension]"</FileType>
</SupportedFileTypes>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
MultiSelectModel | См. ниже |
Тип файла | Соответствующие расширения файлов. |
Модель множественного выбора
Упакованные настольные приложения имеют те же три варианта, что и обычные настольные приложения.
-
Player
: приложение активируется один раз. Все выбранные файлы передаются приложению в качестве параметров аргумента. -
Single
: приложение активируется один раз для первого выбранного файла. Другие файлы игнорируются. -
Document
: для каждого выбранного файла активируется новый отдельный экземпляр приложения.
Вы можете задать различные настройки для различных типов файлов и действий. Например, вы можете открыть документы в режиме документа и изображения в режиме проигрывателя.
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap, uap2, uap3">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes" MultiSelectModel="Document">
<uap2:SupportedVerbs>
<uap3:Verb Id="Edit" MultiSelectModel="Player">Edit</uap3:Verb>
<uap3:Verb Id="Preview" MultiSelectModel="Document">Preview</uap3:Verb>
</uap2:SupportedVerbs>
<uap:SupportedFileTypes>
<uap:FileType>.txt</uap:FileType>
</uap:SupportedFileTypes>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Если пользователь открывает 15 или меньше файлов, по умолчанию для атрибута MultiSelectModel используется Проигрыватель. В противном случае по умолчанию используется Document. Приложения UWP всегда запускаются как Player.
Отображение содержимого файла в виде эскиза в Проводнике
Позволяет пользователям просматривать эскиз содержимого файла, когда значок файла отображается в среднем, крупном или очень крупном размере.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/2
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/desktop/windows10/2
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<SupportedFileTypes>
<FileType>"[FileExtension]"</FileType>
</SupportedFileTypes>
<ThumbnailHandler
Clsid ="[Clsid ]" />
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
Тип файла | Соответствующие расширения файлов. |
Клсид | Идентификатор класса приложения. |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2"
IgnorableNamespaces="uap, uap2, uap3, desktop2">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes">
<uap:SupportedFileTypes>
<uap:FileType>.bar</uap:FileType>
</uap:SupportedFileTypes>
<desktop2:ThumbnailHandler
Clsid ="20000000-0000-0000-0000-000000000001" />
</uap3:FileTypeAssociation>
</uap::Extension>
</Extensions>
</Application>
</Applications>
</Package>
Отобразить содержимое файла в области предварительного просмотра Проводника файлов
Разрешить пользователям просматривать содержимое файла в области предварительного просмотра проводника.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/2
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/desktop/windows10/2
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<SupportedFileTypes>
<FileType>"[FileExtension]"</FileType>
</SupportedFileTypes>
<DesktopPreviewHandler Clsid ="[Clsid ]" />
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
Тип файла | Соответствующие расширения файлов. |
Clsid | Идентификатор класса приложения. |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2"
IgnorableNamespaces="uap, uap2, uap3, desktop2">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes">
<uap:SupportedFileTypes>
<uap:FileType>.bar</uap:FileType>
</uap:SupportedFileTypes>
<desktop2:DesktopPreviewHandler Clsid ="20000000-0000-0000-0000-000000000001" />
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Разрешить пользователям группировать файлы с помощью столбца Kind в проводнике
Можно связать одно или несколько предопределенных значений для типов файлов с полем Kind .
В проводнике пользователи могут группировать эти файлы с помощью этого поля. Системные компоненты также используют это поле для различных целей, таких как индексирование.
В разделе "Использование имен типов"можно найти дополнительные сведения о поле Kind и допустимых для него значениях.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3
Элементы и атрибуты этого расширения
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="[Name]">
<SupportedFileTypes>
<FileType>"[FileExtension]"</FileType>
</SupportedFileTypes>
<KindMap>
<Kind value="[KindValue]">
</KindMap>
</FileTypeAssociation>
</Extension>
Найдите полный справочник схемы по ссылке.
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3"
IgnorableNamespaces="uap, rescap">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="mediafiles">
<uap:SupportedFileTypes>
<uap:FileType>.m4a</uap:FileType>
<uap:FileType>.mta</uap:FileType>
</uap:SupportedFileTypes>
<rescap:KindMap>
<rescap:Kind value="Item">
<rescap:Kind value="Communications">
<rescap:Kind value="Task">
</rescap:KindMap>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Сделать свойства файла доступными для поиска, индекса, диалогов свойств и области сведений
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/desktop/windows10/2
Элементы и атрибуты этого расширения
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="[Name]">
<SupportedFileTypes>
<FileType>.bar</FileType>
</SupportedFileTypes>
<DesktopPropertyHandler Clsid ="[Clsid]"/>
</uap:FileTypeAssociation>
</uap:Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.fileTypeAssociation . |
Имя | Имя сопоставления типа файла. Это имя можно использовать для упорядочивания и группирования типов файлов. Имя должно быть всеми символами нижнего регистра без пробелов. |
Тип файла | Соответствующие расширения файлов. |
Clsid | Идентификатор класса приложения. |
Пример
<Package
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2"
IgnorableNamespaces="uap, uap3, desktop2">
<Applications>
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="myfiletypes">
<uap:SupportedFileTypes>
<uap:FileType>.bar</uap:FileType>
</uap:SupportedFileTypes>
<desktop2:DesktopPropertyHandler Clsid ="20000000-0000-0000-0000-000000000001"/>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Указание обработчика контекстного меню для типа файла
Если настольное приложение определяет обработчик контекстного меню , используйте это расширение для регистрации обработчика контекстного меню.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/foundation/windows10
http://schemas.microsoft.com/appx/manifest/desktop/windows10/4
Элементы и атрибуты этого расширения
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:SurrogateServer AppId="[AppID]" DisplayName="[DisplayName]">
<com:Class Id="[Clsid]" Path="[Path]" ThreadingModel="[Model]"/>
</com:SurrogateServer>
</com:ComServer>
</com:Extension>
<desktop4:Extension Category="windows.fileExplorerContextMenus">
<desktop4:FileExplorerContextMenus>
<desktop4:ItemType Type="[Type]">
<desktop4:Verb Id="[ID]" Clsid="[Clsid]" />
</desktop4:ItemType>
</desktop4:FileExplorerContextMenus>
</desktop4:Extension>
</Extensions>
Найдите полную справочную документацию по схеме здесь: com:ComServer и desktop4:FileExplorerContextMenus.
Инструкции
Чтобы зарегистрировать обработчик контекстного меню, выполните следующие инструкции.
В классическом приложении реализуйте обработчик контекстного меню, реализуя интерфейс IExplorerCommand или IExplorerCommandState. Для примера см. код ExplorerCommandVerb. Убедитесь, что вы определяете GUID класса для каждого объекта реализации. Например, следующий код определяет идентификатор класса для реализации IExplorerCommand.
class __declspec(uuid("00001111-aaaa-2222-bbbb-3333cccc4444")) CExplorerCommandVerb;
В манифесте пакета укажите расширение приложения com:ComServer , которое регистрирует суррогатный сервер COM с идентификатором класса реализации обработчика контекстного меню.
<com:Extension Category="windows.comServer"> <com:ComServer> <com:SurrogateServer AppId="00001111-aaaa-2222-bbbb-3333cccc4444" DisplayName="ContosoHandler"> <com:Class Id="00001111-aaaa-2222-bbbb-3333cccc4444" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/> </com:SurrogateServer> </com:ComServer> </com:Extension>
В манифесте пакета укажите расширение приложения desktop4:FileExplorerContextMenus , которое регистрирует реализацию обработчика контекстного меню.
<desktop4:Extension Category="windows.fileExplorerContextMenus"> <desktop4:FileExplorerContextMenus> <desktop4:ItemType Type=".rar"> <desktop4:Verb Id="Command1" Clsid="00001111-aaaa-2222-bbbb-3333cccc4444" /> </desktop4:ItemType> </desktop4:FileExplorerContextMenus> </desktop4:Extension>
Пример
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
IgnorableNamespaces="desktop4">
<Applications>
<Application>
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:SurrogateServer AppId="00001111-aaaa-2222-bbbb-3333cccc4444" DisplayName="ContosoHandler">
<com:Class Id="00001111-aaaa-2222-bbbb-3333cccc4444" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/>
</com:SurrogateServer>
</com:ComServer>
</com:Extension>
<desktop4:Extension Category="windows.fileExplorerContextMenus">
<desktop4:FileExplorerContextMenus>
<desktop4:ItemType Type=".contoso">
<desktop4:Verb Id="Command1" Clsid="00001111-aaaa-2222-bbbb-3333cccc4444" />
</desktop4:ItemType>
</desktop4:FileExplorerContextMenus>
</desktop4:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Сделайте так, чтобы файлы из облачной службы отображались в Проводнике
Зарегистрируйте обработчики, которые вы реализуете в приложении. Вы также можете добавить параметры контекстного меню, которые отображаются при щелчке правой кнопкой мыши облачных файлов в проводнике.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10
Элементы и атрибуты этого расширения
<Extension Category="windows.cloudfiles" >
<CloudFiles IconResource="[Icon]">
<CustomStateHandler Clsid ="[Clsid]"/>
<ThumbnailProviderHandler Clsid ="[Clsid]"/>
<ExtendedPropertyhandler Clsid ="[Clsid]"/>
<CloudFilesContextMenus>
<Verb Id ="Command3" Clsid= "[GUID]">[Verb Label]</Verb>
</CloudFilesContextMenus>
</CloudFiles>
</Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.cloudfiles . |
ресурс иконки | Значок, представляющий службу поставщика облачных файлов. Этот значок отображается в области навигации окна "Проводник". Пользователи выбирают этот значок, чтобы отобразить файлы из облачной службы. |
CustomStateHandler Clsid | Идентификатор класса приложения, реализующего CustomStateHandler. Система использует этот идентификатор класса для запроса пользовательских состояний и столбцов для облачных файлов. |
ЭскизProviderHandler Clsid | Идентификатор класса приложения, реализующего МиниатюраПровайдерОбработчик. Система использует этот идентификатор класса для запроса эскизов для облачных файлов. |
Расширенный Обработчик Свойств Clsid | Идентификатор класса приложения, реализующего ExtendedPropertyHandler. Система использует этот идентификатор класса для запроса расширенных свойств для облачного файла. |
Глагол | Имя, отображаемое в контекстном меню проводника для файлов, предоставляемых облачной службой. |
Идентификатор | Уникальный идентификатор глагола. |
Пример
<Package
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="desktop">
<Applications>
<Application>
<Extensions>
<Extension Category="windows.cloudfiles" >
<CloudFiles IconResource="images\Wide310x150Logo.png">
<CustomStateHandler Clsid ="20000000-0000-0000-0000-000000000001"/>
<ThumbnailProviderHandler Clsid ="20000000-0000-0000-0000-000000000001"/>
<ExtendedPropertyhandler Clsid ="20000000-0000-0000-0000-000000000001"/>
<desktop:CloudFilesContextMenus>
<desktop:Verb Id ="keep" Clsid=
"20000000-0000-0000-0000-000000000001">
Always keep on this device</desktop:Verb>
</desktop:CloudFilesContextMenus>
</CloudFiles>
</Extension>
</Extensions>
</Application>
</Applications>
</Package>
Запуск приложения различными способами
- Запуск приложения с использованием протокола
- Запуск приложения с помощью псевдонима
- Запуск исполняемого файла при входе пользователей в Windows
- Позволить пользователям запускать ваше приложение при подключении устройства к ПК
- Автоматически перезапуск после получения обновления из Microsoft Store
Запуск приложения с помощью протокола
Сопоставления протоколов позволяют другим программам и системным компонентам взаимодействовать с упакованным приложением. При запуске упаковаемого приложения с помощью протокола можно указать определенные параметры для передачи в аргументы события активации, чтобы оно вел себя соответствующим образом. Параметры поддерживаются только для упакованных приложений с полным доверием. Приложения UWP не могут использовать параметры.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
Элементы и атрибуты этого расширения
<Extension
Category="windows.protocol">
<Protocol
Name="[Protocol name]"
Parameters="[Parameters]" />
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.protocol . |
Имя | Имя протокола. |
Параметры | Список параметров и значений, передаваемых приложению в качестве аргументов событий при активации приложения. Если переменная может содержать путь к файлу, заключите значение параметра в кавычки. Это позволит избежать проблем, возникающих в тех случаях, когда путь включает пробелы. |
Пример
<Package
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap3, desktop">
<Applications>
<Application>
<Extensions>
<uap3:Extension
Category="windows.protocol">
<uap3:Protocol
Name="myapp-cmd"
Parameters="/p "%1"" />
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Запуск приложения с помощью псевдонима
Пользователи и другие процессы могут использовать псевдоним для запуска приложения, не указывая полный путь к приложению. Можно указать имя псевдонима.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/3
http://schemas.microsoft.com/appx/manifest/desktop/windows10
Элементы и атрибуты этого расширения
<uap3:Extension
Category="windows.appExecutionAlias"
Executable="[ExecutableName]"
EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="[AliasName]" />
</uap3:AppExecutionAlias>
</uap3:Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.appExecutionAlias . |
исполняемый файл | Относительный путь к исполняемому файлу для запуска при вызове псевдонима. |
Псевдоним | Короткое имя приложения. Он всегда должен заканчиваться расширением ".exe". Вы можете указать только один псевдоним выполнения приложения для каждого приложения в пакете. Если несколько приложений регистрируются для одного и того же псевдонима, система вызовет последнее зарегистрированное приложение, поэтому убедитесь, что вы выбираете уникальный псевдоним, который другие приложения вряд ли переопределят. |
Пример
<Package
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="uap3">
<Applications>
<Application>
<Extensions>
<uap3:Extension
Category="windows.appExecutionAlias"
Executable="exes\launcher.exe"
EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="Contoso.exe" />
</uap3:AppExecutionAlias>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Найдите полный справочник схемы по ссылке.
Запуск исполняемого файла при входе пользователей в Windows
Задачи запуска позволяют приложению автоматически запускать исполняемый файл при входе пользователя.
Замечание
Пользователь должен запустить приложение по крайней мере один раз, чтобы зарегистрировать эту задачу запуска.
Приложение может объявлять несколько задач запуска. Каждая задача запускается независимо. Все задачи запуска будут отображаться в диспетчере задач на вкладке Автозагрузка с именем, которое вы указали в манифесте приложения, и с иконкой вашего приложения. Диспетчер задач автоматически анализирует влияние запуска задач.
Пользователи могут вручную отключить задачу запуска приложения с помощью диспетчера задач. Если пользователь отключает задачу, ее невозможно повторно включить программным способом.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10
Элементы и атрибуты этого расширения
<Extension
Category="windows.startupTask"
Executable="[ExecutableName]"
EntryPoint="Windows.FullTrustApplication">
<StartupTask
TaskId="[TaskID]"
Enabled="true"
DisplayName="[DisplayName]" />
</Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.startupTask . |
исполняемый файл | Относительный путь к исполняемому файлу для запуска. |
Идентификатор задачи | Уникальный идентификатор задачи. С помощью этого идентификатора приложение может вызывать API-интерфейсы в классе Windows.ApplicationModel.StartupTask , чтобы программно включить или отключить задачу запуска. |
Включен | Указывает, будет ли задача изначально включена или отключена. Включенные задачи будут выполняться при следующем входе пользователя (если пользователь не отключает его). |
Отображаемое имя | Имя задачи, отображаемой в диспетчере задач. Эту строку можно локализовать с помощью ms-resource . |
Пример
<Package
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="desktop">
<Applications>
<Application>
<Extensions>
<desktop:Extension
Category="windows.startupTask"
Executable="bin\MyStartupTask.exe"
EntryPoint="Windows.FullTrustApplication">
<desktop:StartupTask
TaskId="MyStartupTask"
Enabled="true"
DisplayName="My App Service" />
</desktop:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Разрешить пользователям запускать приложение при подключении устройства к компьютеру
Автозапуск может предложить ваше приложение в качестве варианта, когда пользователь подключает устройство к ПК.
Пространство имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10/3
Элементы и атрибуты этого расширения
<Extension Category="windows.autoPlayHandler">
<AutoPlayHandler>
<InvokeAction ActionDisplayName="[action string]" ProviderDisplayName="[name of your app/service]">
<Content ContentEvent="[Content event]" Verb="[any string]" DropTargetHandler="[Clsid]" />
<Content ContentEvent="[Content event]" Verb="[any string]" Parameters="[Initialization parameter]"/>
<Device DeviceEvent="[Device event]" HWEventHandler="[Clsid]" InitCmdLine="[Initialization parameter]"/>
</InvokeAction>
</AutoPlayHandler>
Имя | Описание |
---|---|
Категория | Всегда windows.autoPlayHandler . |
ActionDisplayName | Строка, представляющая действие, которое пользователи могут предпринять с устройством, которое они подключаются к компьютеру (например, "Импорт файлов" или "Воспроизведение видео"). |
Имя провайдера для отображения | Строка, представляющая приложение или службу (например, "Видеопроигрыватель Contoso"). |
СобытиеКонтента | Имя события содержимого, которое вызывает у пользователей запрос с использованием ActionDisplayName и ProviderDisplayName . Событие содержимого возникает, когда устройство тома, например, карта памяти камеры, флеш-накопитель или DVD-диск, вставляется в компьютер. Полный список этих событий можно найти здесь. |
Глагол | Параметр "Команда" определяет значение, переданное приложению для выбранного параметра. Можно указать несколько действий запуска для события Автозапуска и использовать параметр "Команда", чтобы определить, какой вариант выбран пользователем для вашего приложения. Вы можете определить, какую опцию выбрал пользователь, проверив свойство глагола в аргументах события запуска, переданных вашему приложению. Можно использовать любое значение для параметра "Команда", за исключением открытого, зарезервированного. |
ДропТаргетХендлер | Идентификатор класса приложения, реализующего интерфейс IDropTarget. Файлы с съемных носителей передаются в метод Drop вашей реализации IDropTarget. |
Параметры | Не обязательно реализовать интерфейс IDropTarget для всех событий контента. Для любого события содержимого можно указать параметры командной строки вместо реализации интерфейса IDropTarget . Для этих событий автозапуск запустит приложение с помощью этих параметров командной строки. Эти параметры можно проанализировать в коде инициализации приложения, чтобы определить, был ли он запущен автозапуском, а затем предоставить пользовательскую реализацию. |
DeviceEvent | Имя события устройства, которое заставляет пользователей запрашивать ActionDisplayName и ProviderDisplayName . Событие устройства возникает при подключении устройства к компьютеру. События устройства начинаются со строки WPD , и вы можете найти их здесь . |
HWEventHandler | Идентификатор класса приложения, реализующего интерфейс IHWEventHandler . |
InitCmdLine | Строковый параметр, который требуется передать в метод Initialize интерфейса IHWEventHandler. |
Пример
<Package
xmlns:desktop3="http://schemas.microsoft.com/appx/manifest/desktop/windows10/3"
IgnorableNamespaces="desktop3">
<Applications>
<Application>
<Extensions>
<desktop3:Extension Category="windows.autoPlayHandler">
<desktop3:AutoPlayHandler>
<desktop3:InvokeAction ActionDisplayName="Import my files" ProviderDisplayName="ms-resource:AutoPlayDisplayName">
<desktop3:Content ContentEvent="ShowPicturesOnArrival" Verb="show" DropTargetHandler="CD041BAE-0DEA-4472-9B7B-C98043D26EA8"/>
<desktop3:Content ContentEvent="PlayVideoFilesOnArrival" Verb="play" Parameters="%1" />
<desktop3:Device DeviceEvent="WPD\ImageSource" HWEventHandler="CD041BAE-0DEA-4472-9B7B-C98043D26EA8" InitCmdLine="/autoplay"/>
</desktop3:InvokeAction>
</desktop3:AutoPlayHandler>
</Extensions>
</Application>
</Applications>
</Package>
Автоматическая перезагрузка после получения обновления из Microsoft Store
Если приложение открыто, когда пользователи устанавливают обновление, приложение закрывается.
Если вы хотите перезапустить это приложение после завершения обновления, вызовите функцию RegisterApplicationRestart в каждом процессе, который требуется перезапустить.
Каждое активное окно вашего приложения получает сообщение WM_QUERYENDSESSION. На этом этапе приложение может снова вызвать функцию RegisterApplicationRestart , чтобы при необходимости обновить командную строку.
Когда каждое активное окно в приложении получает сообщение WM_ENDSESSION , приложение должно сохранять данные и завершить работу.
Замечание
Активные окна также получают сообщение WM_CLOSE , если приложение не обрабатывает сообщение WM_ENDSESSION .
На этом этапе приложение имеет 30 секунд, чтобы закрыть собственные процессы или платформа принудительно завершает их.
После завершения обновления приложение перезагружается.
Работа с другими приложениями
Интеграция с другими приложениями, запуск других процессов или предоставление общего доступа к данным.
- Представьте ваше приложение как цель печати в приложениях, которые поддерживают печать
- Совместное использование шрифтов с другими приложениями Windows
- Запустить процесс Win32 из приложения Универсальной платформы Windows (UWP)
Сделайте ваше приложение целевым объектом печати в приложениях, поддерживающих печать.
Когда пользователи хотят распечатать данные из другого приложения, например Блокнот, вы можете сделать приложение целевым объектом печати в списке доступных целевых объектов печати приложения.
Необходимо изменить приложение таким образом, чтобы он получал данные печати в формате XML Paper Specification (XPS).
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10/2
Элементы и атрибуты этого расширения
<Extension Category="windows.appPrinter">
<AppPrinter
DisplayName="[DisplayName]"
Parameters="[Parameters]" />
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.appPrinter . |
Отображаемое имя | Имя, которое нужно отобразить в списке целевых объектов печати для приложения. |
Параметры | Все параметры, необходимые приложению для правильной обработки запроса. |
Пример
<Package
xmlns:desktop2="http://schemas.microsoft.com/appx/manifest/desktop/windows10/2"
IgnorableNamespaces="desktop2">
<Applications>
<Application>
<Extensions>
<desktop2:Extension Category="windows.appPrinter">
<desktop2:AppPrinter
DisplayName="Send to Contoso"
Parameters="/insertdoc %1" />
</desktop2:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Найдите пример, использующий это расширение здесь
Совместное использование шрифтов с другими приложениями Windows
Совместное использование пользовательских шрифтов с другими приложениями Windows.
Замечание
Прежде чем отправить приложение, которое использует это расширение в Магазин, необходимо сначала получить утверждение от команды Магазина. Чтобы получить утверждение, перейдите https://aka.ms/storesupportпо ссылке , нажмите кнопку "Связаться с нами" и выберите параметры, относящиеся к отправке приложений на панель мониторинга. Этот процесс утверждения помогает гарантировать отсутствие конфликтов между шрифтами, установленными приложением и шрифтами, установленными с ОС. Если утверждение не получено, при отправке приложения появится сообщение об ошибке следующего вида: "Ошибка проверки принятия пакета: невозможно использовать расширение windows.sharedFonts с этой учетной записью. Обратитесь в нашу службу поддержки, если вы хотите запросить разрешения на использование этого расширения".
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/uap/windows10/4
Элементы и атрибуты этого расширения
<Extension Category="windows.sharedFonts">
<SharedFonts>
<Font File="[FontFile]" />
</SharedFonts>
</Extension>
Найдите полный справочник схемы по ссылке.
Имя | Описание |
---|---|
Категория | Всегда windows.sharedFonts . |
Файл | Файл, содержащий шрифты, к которым требуется предоставить общий доступ. |
Пример
<Package
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
IgnorableNamespaces="uap4">
<Applications>
<Application>
<Extensions>
<uap4:Extension Category="windows.sharedFonts">
<uap4:SharedFonts>
<uap4:Font File="Fonts\JustRealize.ttf" />
<uap4:Font File="Fonts\JustRealizeBold.ttf" />
</uap4:SharedFonts>
</uap4:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Запуск процесса Win32 из приложения универсальной платформы Windows (UWP)
Запустите процесс Win32, который выполняется с полным уровнем доверия.
Пространства имен XML
http://schemas.microsoft.com/appx/manifest/desktop/windows10
Элементы и атрибуты этого расширения
<Extension Category="windows.fullTrustProcess" Executable="[executable file]">
<FullTrustProcess>
<ParameterGroup GroupId="[GroupID]" Parameters="[Parameters]"/>
</FullTrustProcess>
</Extension>
Имя | Описание |
---|---|
Категория | Всегда windows.fullTrustProcess . |
Идентификатор группы | Строка, идентифицирующая набор параметров, которые необходимо передать в исполняемый файл. |
Параметры | Параметры, которые необходимо передать в исполняемый файл. |
Пример
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap=
"http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10">
...
<Capabilities>
<rescap:Capability Name="runFullTrust"/>
</Capabilities>
<Applications>
<Application>
<Extensions>
<desktop:Extension Category="windows.fullTrustProcess" Executable="fulltrustprocess.exe">
<desktop:FullTrustProcess>
<desktop:ParameterGroup GroupId="SyncGroup" Parameters="/Sync"/>
<desktop:ParameterGroup GroupId="OtherGroup" Parameters="/Other"/>
</desktop:FullTrustProcess>
</desktop:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Это расширение может оказаться полезным, если вы хотите создать пользовательский интерфейс универсальной платформы Windows, который выполняется на всех устройствах, но вы хотите, чтобы компоненты приложения Win32 продолжали работать в полном доверии.
Просто создайте пакет приложения Windows для приложения Win32. Затем добавьте это расширение в файл пакета приложения UWP. Это расширение указывает, что вы хотите запустить исполняемый файл в пакете приложения Windows. Если вы хотите, чтобы ваше приложение UWP взаимодействовало с приложением Win32, вы можете настроить одну или несколько служб приложений для этого. Более подробную информацию об этом сценарии вы можете прочитать здесь.
Дальнейшие шаги
У вас есть вопросы? Спросите нас в Stack Overflow. Наша команда следит за этими тегами. Вы также можете задать нам вопросы здесь.
Windows developer