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


Интеграция классического приложения с Windows с помощью расширений упаковки

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

Например, используйте расширение для создания исключения брандмауэра; сделайте приложение приложением по умолчанию для типа файла; или наведите указатель на плитки "Пуск" в приложение. Чтобы использовать расширение, просто добавьте разметку XML в файл манифеста пакета приложения. Никакой код не требуется.

В этом разделе описываются эти расширения и задачи, которые можно выполнить с помощью этих расширений.

Примечание.

Функции, описанные в этом разделе, требуют упаковки приложения (имеет удостоверение пакета во время выполнения). Это включает упакованные приложения (см. статью "Создание нового проекта для упаковаемого классического приложения WinUI 3") и упакованных приложений с внешним расположением (см . раздел "Предоставление удостоверения пакета путем упаковки с внешним расположением"). Также см. сведения о функциях, требующих удостоверения пакета.

Переход пользователей на ваше приложение

Помогите пользователям перейти на ваше упакованное приложение:

Перенаправление имеющегося классического приложения в упакованное приложение

Когда пользователи запускают существующее непакованное классическое приложение, вы можете настроить упакованое приложение для открытия.

Примечание.

Эта функция поддерживается в предварительной сборке 21313 для участников программы предварительной оценки Windows или более поздних версий.

Чтобы включить это поведение, выполните указанные ниже действия.

  1. Добавьте записи реестра, чтобы перенаправить исполняемый файл неупакованного классического приложения в упакованное приложение.
  2. Зарегистрируйте упакованное приложение, чтобы оно запускалось при запуске исполняемого файла неупакованного классического приложения.

Добавление записей реестра для перенаправления исполняемого файла неупакованного классического приложения

  1. В реестре создайте подраздел с именем исполняемого файла классического приложения в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
  2. В этом подразделе добавьте следующие значения:
    • 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 Идентификатор модели пользователя приложения для упакованного приложения.
ShortcutPath Путь к 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.
Имя. Название сопоставления типов файлов. Это название можно использовать, чтобы упорядочить и сгруппировать типы файлов. Название должно состоять полностью из букв в нижнем регистре без пробелов.
FileType Расширение файла, поддерживаемое вашим приложением.

Пример

<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, передача параметров невозможна. Вместо этого приложение получит идентификатор Id (см. предыдущий пункт).
Расширенное Указывает, что команда появляется, только если пользователь открыл контекстное меню, удерживая клавишу 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 &quot;%1&quot;">Edit</uap3:Verb>
              <uap3:Verb Id="Print" Extended="true" Parameters="/p &quot;%1&quot;">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-адреса приведут к тому, что система сначала скачает этот файл локально.
Параметры Дополнительные параметры.
FileType Соответствующие расширения файлов.

Пример

<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
исполняемый объект Имя исполняемого файла, который необходимо добавить в список исключений брандмауэра.
Направление Указывает направление правила подключения: входящее или исходящее.
IPProtocol Протокол взаимодействия.
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.
FolderPath Путь к папке, содержащей 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>

Интеграция с проводником

Помогите пользователям упорядочить файлы и работать с ними привычными способами:

Определите поведения приложения, когда пользователи выбирают и открывают несколько файлов одновременно.

Укажите поведение приложения, когда пользователь открывает несколько файлов одновременно.

Пространства имен 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 См. ниже
FileType Соответствующие расширения файлов.

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 — Player. В противном случае значением по умолчанию является 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.
Имя. Название сопоставления типов файлов. Это название можно использовать, чтобы упорядочить и сгруппировать типы файлов. Название должно состоять полностью из букв в нижнем регистре без пробелов.
FileType Соответствующие расширения файлов.
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: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.
Имя. Название сопоставления типов файлов. Это название можно использовать, чтобы упорядочить и сгруппировать типы файлов. Название должно состоять полностью из букв в нижнем регистре без пробелов.
FileType Соответствующие расширения файлов.
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>

Предоставление пользователям возможности группировать файлы с помощью столбца "Вид" в проводнике

Вы можете связать одно или несколько предопределенных значений для ваших типов файлов с полем Вид.

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

Дополнительные сведения о поле Вид и значениях, которые можно использовать для этого поля, см. в статье Использование имен для свойства вида.

Пространства имен 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>

Полный справочник по схеме можно найти здесь.

Имя Описание
Категория Всегдаwindows.fileTypeAssociation.
Имя. Название сопоставления типов файлов. Это название можно использовать, чтобы упорядочить и сгруппировать типы файлов. Название должно состоять полностью из букв в нижнем регистре без пробелов.
FileType Соответствующие расширения файлов.
значение Допустимое значение для свойства вида.

Пример

<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.
Имя. Название сопоставления типов файлов. Это название можно использовать, чтобы упорядочить и сгруппировать типы файлов. Название должно состоять полностью из букв в нижнем регистре без пробелов.
FileType Соответствующие расширения файлов.
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.

Instructions

Чтобы зарегистрировать обработчик контекстного меню, выполните следующие инструкции:

  1. В классическом приложении реализуйте обработчик контекстного меню с помощью IExplorerCommand или интерфейса IExplorerCommandState. Для примера просмотрите образец кода ExplorerCommandVerb. Убедитесь, что для каждого объекта реализации определен глобальный уникальный идентификатор (GUID) класса. Например, следующий код определяет идентификатор класса для реализации IExplorerCommand.

    class __declspec(uuid("d0c8bceb-28eb-49ae-bc68-454ae84d6264")) CExplorerCommandVerb;
    
  2. В манифесте пакета укажите расширение приложения com:ComServer, которое регистрирует суррогатный COM-сервер с использованием идентификатора класса для реализации обработчика контекстного меню.

    <com:Extension Category="windows.comServer">
        <com:ComServer>
            <com:SurrogateServer AppId="d0c8bceb-28eb-49ae-bc68-454ae84d6264" DisplayName="ContosoHandler">
                <com:Class Id="d0c8bceb-28eb-49ae-bc68-454ae84d6264" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/>
            </com:SurrogateServer>
        </com:ComServer>
    </com:Extension>
    
  3. В манифесте пакета укажите расширение приложения desktop4:FileExplorerContextMenus, которое регистрирует реализацию обработчика контекстного меню.

    <desktop4:Extension Category="windows.fileExplorerContextMenus">
        <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type=".rar">
                <desktop4:Verb Id="Command1" Clsid="d0c8bceb-28eb-49ae-bc68-454ae84d6264" />
            </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="d0c8bceb-28eb-49ae-bc68-454ae84d6264" DisplayName="ContosoHandler">
              <com:Class Id="d0c8bceb-28eb-49ae-bc68-454ae84d6264" 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="d0c8bceb-28eb-49ae-bc68-454ae84d6264" />
            </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.
iconResource Значок, который представляет службу поставщика облачных файлов. Этот значок отображается в области навигации проводника. Пользователи выбирают этот значок, чтобы показать файлы из вашей облачной службы.
CustomStateHandler Clsid Идентификатор класса приложения для реализации CustomStateHandler. Система использует этот идентификатор класса для запросов пользовательских состояний и столбцов для облачных файлов.
ThumbnailProviderHandler Clsid Идентификатор класса приложения для реализации ThumbnailProviderHandler. Система использует этот идентификатор класса для запросов эскизов для облачных файлов.
ExtendedPropertyHandler 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>

Различные способы запуска приложения

Запуск приложения с использованием протокола

Сопоставления протоколов позволяют другим программам и компонентам системы взаимодействовать с упакованным приложением. Когда ваше упакованное приложение запускается с использованием протокола, вы можете определить специальные параметры, которые передаются аргументам события активации, что позволит приложению реагировать соответствующим образом. Параметры поддерживаются только для упакованных приложений с полным доверием. Приложения 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 &quot;%1&quot;" />
        </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.
исполняемый объект Относительный путь к исполняемому файлу для запуска.
TaskId Уникальный идентификатор для вашей задачи. Используя этот идентификатор, ваше приложение может вызывать функции API в классе Windows.ApplicationModel.StartupTask, чтобы программным способом включать или отключать задачу запуска.
Включен Указывает, запускается ли задача первый раз включенной или отключенной. Включенные задачи будут выполняться при следующем входе пользователя (если пользователь не отключает его).
DisplayName Имя задачи, которое отображается в диспетчере задач. Эту строку можно локализовать с помощью 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 Строка, представляющая действие, которое пользователи могут предпринять с устройством, которое они подключаются к компьютеру (например, "Импорт файлов" или "Воспроизведение видео").
ProviderDisplayName Строка, представляющая приложение или службу (например, "Видеопроигрыватель Contoso").
ContentEvent Имя события содержимого, при котором ActionDisplayName и ProviderDisplayName отправляют запрос пользователям. Событие содержимого возникает, когда к компьютеру подключается устройство тома, например карта памяти камеры, флэш-накопитель, или в дисковод вставляется DVD-диск. Полный список этих событий можно найти здесь .
Команда Параметр Verb определяет значение, передаваемое приложению для выбранного варианта. Для события автозапуска можно указать несколько действий при запуске и использовать параметр Verb, чтобы определить, какой вариант пользователь выбрал для приложения. Выбранный пользователем вариант можно узнать, проверив свойство verb аргументов события запуска, переданных приложению. Для параметра Verb можно использовать любое значение, кроме значения open, которое зарезервировано.
DropTargetHandler Идентификатор класса приложения для реализации интерфейса 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 секунд на закрытие своих процессов, либо платформа завершает их принудительно.

После завершения обновления приложение перезапускается.

Работа с другими приложениями

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

Отображение вашего приложения в виде целевого объекта печати в приложениях, поддерживающих печать

Когда пользователи хотят распечатать данные из другого приложения, например Блокнота, можно показывать ваше приложение в виде целевого объекта печати в списке доступных объектов печати в этом приложении.

Вам необходимо изменить ваше приложение, чтобы оно получало данные для печати в формате XPS.

Пространства имен XML

http://schemas.microsoft.com/appx/manifest/desktop/windows10/2

Элементы и атрибуты этого расширения

<Extension Category="windows.appPrinter">
    <AppPrinter
        DisplayName="[DisplayName]"
        Parameters="[Parameters]" />
</Extension>

Полный справочник по схеме можно найти здесь.

Имя Описание
Категория Всегдаwindows.appPrinter.
DisplayName Имя, которое должно отображаться в списке целевых объектов печати для приложения.
Параметры Любые параметры, которые требуются вашему приложению для правильной обработки запроса.

Пример

<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.

Примечание.

Перед отправкой приложения, которое использует это расширение, в Store необходимо получить утверждение от команды Store. Чтобы получить утверждение, перейдите на страницу 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.
GroupID Строка, определяющая набор параметров, которые необходимо передать в исполняемый файл.
Параметры Параметры, которые необходимо передать в исполняемый файл.

Пример

<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. Наша команда следит за этими тегами. Вы также можете задать нам вопросы здесь.