Integrieren Sie Ihre Desktop-App mit Paketerweiterungen in Windows.

Wenn Ihre Desktop-App eine Paketidentität umfasst, können Sie Ihre App mithilfe von Erweiterungen in Windows 10 und neuere Releases integrieren, indem Sie vordefinierte Erweiterungen im Paketmanifest nutzen.

Verwende beispielsweise eine Erweiterung, um eine Firewallausnahme festzulegen, lege deine App als Standard-App für einen Dateityp fest, oder verweise mit Startkacheln auf deine App. Um eine Erweiterung zu verwenden, fügst du einfach etwas XML zur Paketmanifestdatei deiner App hinzu. Es ist kein Code erforderlich.

In diesem Thema werden diese Erweiterungen und die Aufgaben beschrieben, die du mithilfe dieser Erweiterungen ausführen kannst.

Hinweis

Für die im vorliegenden Artikel beschriebenen Features muss deine Desktop-App eine Paketidentität aufweisen, entweder durch das Packen deiner Desktop-App in einem MSIX-Paket oder durch das Gewähren einer App-Identität durch Verwendung eines Pakets mit geringer Datendichte.

Benutzerumstellung auf deine App

Unterstütze die Benutzer bei der Umstellung auf deine gepackte App.

Umleiten Ihrer vorhandenen Desktop-App an Ihre gepackte App

Wenn Benutzer Ihre vorhandene, nicht gepackte Desktop-App starten, können Sie Ihre MSIX-gepackte App so konfigurieren, dass diese stattdessen geöffnet wird.

Hinweis

Dieses Feature wird in Windows Insider Preview Build 21313 und höheren Versionen unterstützt.

So aktivieren Sie dieses Verhalten

  1. Fügen Sie Registrierungseinträge hinzu, um die ausführbare Datei der nicht gepackten Desktop-App an Ihre gepackte App umzuleiten.
  2. Registrieren Sie Ihre gepackte App, damit sie gestartet wird, wenn die ausführbare Datei Ihrer nicht gepackten Desktop-App gestartet wird.

Fügen Sie Registrierungseinträge hinzu, um die ausführbare Datei der nicht gepackten Desktop-App umzuleiten.

  1. Erstellen Sie in der Registrierung unter dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options einen Unterschlüssel mit dem Namen der ausführbaren Datei Ihrer Desktop-App.
  2. Fügen Sie unter diesem Unterschlüssel die folgenden Werte hinzu:
    • AppExecutionAliasRedirect (DWORD): Wenn dieser Wert auf 1 festgelegt ist, sucht das System nach einer AppExecutionAlias-Paketerweiterung mit demselben Namen wie die ausführbare Datei. Wenn die Erweiterung AppExecutionAlias aktiviert ist, wird die gepackte App mit diesem Wert aktiviert.
    • AppExecutionAliasRedirectPackages (REG_SZ): Das System leitet nur auf die aufgelisteten Pakete um. Pakete werden nach Ihrem Paketfamiliennamen aufgelistet, getrennt durch Semikolons. Wenn der Sonderwert * verwendet wird, leitet das System von einem beliebigen Paket zu einem AppExecutionAlias um.

Beispiele:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\contosoapp.exe 
    AppExecutionAliasRedirect = 1
    AppExecutionAliasRedirectPackages = "Microsoft.WindowsNotepad_8weky8webbe" 

Registrieren der gepackten App, um diese zu starten

Fügen Sie zum Paketmanifest eine AppExecutionAlias-Erweiterung hinzu, die den Namen der ausführbaren Datei Ihrer nicht gepackten Desktop-App registriert. Beispiele:

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

Deaktivieren der Umleitung

Benutzer können die Umleitung deaktivieren, um die ausführbare Datei Ihrer nicht gepackten App über diese Optionen zu starten:

  • Sie können die MSIX-gepackte Version Ihrer App deinstallieren.
  • Der Benutzer kann den Eintrag AppExecutionAlias für Ihre MSIX-gepackte App auf der Seite App-Ausführungsaliase in Einstellungen deaktivieren.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10/3
  • http://schemas.microsoft.com/appx/manifest/desktop/windows10

Elemente und Attribute dieser Erweiterung

<uap3:Extension
    Category="windows.appExecutionAlias"
    EntryPoint="Windows.FullTrustApplication">
    <uap3:AppExecutionAlias>
        <desktop:ExecutionAlias Alias="[AliasName]" />
    </uap3:AppExecutionAlias>
</uap3:Extension>
Name Beschreibung
Category Immer windows.appExecutionAlias.
Ausführbare Datei Der relative Pfad zur ausführbaren Datei, die beim Aufrufen des Alias gestartet wird.
Alias Der Kurzname für deine App. Er muss immer mit der Erweiterung „.exe“ enden.

Verweis auf die gepackte App mit vorhandenen Startkacheln und Taskleistenschaltflächen

Deine Benutzer haben möglicherweise deine Desktop-Anwendung an die Taskleiste oder das Startmenü angeheftet. Du kannst in diesen Verknüpfungen auf deine neue gepackte App verweisen.

XML-Namespace

http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.desktopAppMigration">
    <DesktopAppMigration>
        <DesktopApp AumId="[your_app_aumid]" />
        <DesktopApp ShortcutPath="[path]" />
    </DesktopAppMigration>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.desktopAppMigration.
AumID Die Anwendungsbenutzermodell-ID deiner gepackten App.
ShortcutPath Der Pfad zu den INK-Dateien, mit denen die Desktopversion deiner App gestartet wird.

Beispiel

<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-Bildanzeige mit Übergang/Migration/Deinstallation

Festlegen deiner gepackten Anwendung zum Öffnen von Dateien anstelle deiner Desktop-App

Du kannst sicherstellen, dass die Benutzer zum Öffnen bestimmter Dateitypen standardmäßig deine neue gepackte App anstelle der Desktopversion deiner App verwenden.

Dazu gibst du den programmatischen Bezeichner (ProgID) jeder Anwendung an, von der du Dateizuordnungen übernehmen möchtest.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10/3
  • http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
         <MigrationProgIds>
            <MigrationProgId>"[ProgID]"</MigrationProgId>
        </MigrationProgIds>
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
MigrationProgId Der programmatische Bezeichner (ProgID), der die Anwendung, die Komponente und die Version der Desktopanwendung beschreibt, aus der die Dateizuordnungen übernommen werden sollen.

Beispiel

<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-Bildanzeige mit Übergang/Migration/Deinstallation

Zuordnen einer gepackten Anwendung zu einer Gruppe von Dateitypen

Sie können Ihre gepackte App bestimmten Dateityperweiterungen zuordnen. Wenn ein Benutzer mit der rechten Maustaste auf eine Datei im Datei-Explorer klickt und Öffnen mit auswählt, wird Ihre App in der Vorschlagsliste angezeigt. Weitere Informationen zur Verwendung dieser Erweiterung finden Sie unter Integrieren einer gepackten Desktop-App im Datei-Explorer.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10
  • http://schemas.microsoft.com/appx/manifest/uap/windows10/3

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
        <SupportedFileTypes>
            <FileType>"[file extension]"</FileType>
        </SupportedFileTypes>
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
FileType Die Dateierweiterung, die von deiner App unterstützt wird.

Beispiel

<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-Bildanzeige mit Übergang/Migration/Deinstallation

Hinzufügen von Optionen zu den Kontextmenüs von Dateien eines bestimmten Dateityps

Diese Erweiterung ermöglicht es Ihnen, Optionen zum Kontextmenü hinzuzufügen, das angezeigt wird, wenn Benutzer mit der rechten Maustaste auf eine Datei im Datei-Explorer klicken. Diese Optionen stellen den Benutzern andere Möglichkeiten für die Interaktion mit Ihrer Datei zur Verfügung, z. B. Drucken, Bearbeiten oder Anzeigen einer Dateivorschau. Weitere Informationen zur Verwendung dieser Erweiterung finden Sie unter Integrieren einer gepackten Desktop-App im Datei-Explorer.

XML-Namespaces

  • 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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
        <SupportedVerbs>
           <Verb Id="[ID]" Extended="[Extended]" Parameters="[parameters]">"[verb label]"</Verb>
        </SupportedVerbs>
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
Verb Der Name, der im Kontextmenü des Datei-Explorers angezeigt wird. Diese Zeichenfolge kann mithilfe von ms-resource lokalisiert werden.
Id Die eindeutige ID des Verbs. Bei UWP-Apps wird sie im Rahmen der Aktivierungsereignisargumente übergeben, um eine ordnungsgemäße Verarbeitung der Benutzerauswahl zu ermöglichen. Bei gepackten, als vollständig vertrauenswürdig eingestuften Apps hingegen werden Parameter übergeben (siehe nächster Punkt in der Auflistung).
Parameter Die Liste mit Argumentparametern und -werten für das Verb. Wenn deine Anwendung eine als vertrauenswürdig eingestufte gepackte App ist, werden diese Parameter bei der Aktivierung der Anwendung als Ereignisargumente an die Anwendung übergeben. Du kannst das Verhalten deiner App auf Basis anderer Aktivierungsverben anpassen. Wenn eine Variable einen Dateipfad enthalten kann, schließe den Parameterwert in Anführungszeichen ein. So werden Probleme vermieden, die bei Pfaden mit Leerzeichen auftreten können. Wenn deine App eine UWP-App ist, kannst du keine Parameter übergeben. Die App empfängt stattdessen die ID (siehe vorheriger Punkt in der Auflistung).
Erweitert Gibt an, dass das Verb nur angezeigt werden soll, wenn der Benutzer zum Anzeigen des Kontextmenüs die UMSCHALTTASTE gedrückt hält, bevor er mit der rechten Maustaste auf die Datei klickt. Dieses Attribut ist optional und standardmäßig auf den Wert FALSE (Verb soll immer angezeigt werden) festgelegt. Dieses Verhalten muss für jedes Verb einzeln angegeben werden – mit Ausnahme von „Öffnen“: Bei diesem Verb ist der Wert immer False.

Beispiel

<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-Bildanzeige mit Übergang/Migration/Deinstallation

Öffnen bestimmter Dateitypen direkt über eine URL

Du kannst sicherstellen, dass die Benutzer zum Öffnen bestimmter Dateitypen standardmäßig deine neue gepackte App anstelle der Desktopversion deiner App verwenden.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10
  • http://schemas.microsoft.com/appx/manifest/uap/windows10/3

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]" UseUrl="true" Parameters="%1">
        <SupportedFileTypes>
            <FileType>"[FileExtension]"</FileType>
        </SupportedFileTypes>
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
UseUrl Gibt an, ob Dateien direkt über ein URL-Ziel geöffnet werden sollen. Wenn du diesen Wert nicht festlegst, lädt das System die Datei zunächst lokal herunter, wenn deine App versucht, die Datei über eine URL zu öffnen.
Parameter Optionale Parameter.
FileType Die relevanten Dateierweiterungen.

Beispiel

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

Ausführen von Einrichtungsaufgaben

Erstellen von Firewallausnahmen für deine App

Wenn deine App über einen Port kommunizieren muss, kannst du deine App zur Liste der Firewallausnahmen hinzufügen.

XML-Namespace

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

Elemente und Attribute dieser Erweiterung

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

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Kategorie Immer windows.firewallRules.
Ausführbare Datei Der Name der ausführbaren Datei, die zur Liste der Firewallausnahmen hinzugefügt werden soll.
Direction Gibt an, ob es sich um eine Regel für eingehenden oder ausgehenden Datenverkehr handelt.
IPProtocol Das Kommunikationsprotokoll.
LocalPortMin Die niedrigste Portnummer in einem Bereich lokaler Ports.
LocalPortMax Die höchste Portnummer in einem Bereich lokaler Ports.
RemotePortMax Die niedrigste Portnummer in einem Bereich von Remoteports.
RemotePortMax Die höchste Portnummer in einem Bereich von Remoteports.
Profil Der Netzwerktyp.

Beispiel

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

Platzieren deiner DLL-Dateien in einem beliebigen Ordner des Pakets

Verwenden Sie die Erweiterung uap6:LoaderSearchPathOverride, um bis zu fünf Ordnerpfade im App-Paket relativ zum Stammpfad des App-Pakets zu deklarieren, die im Suchpfad des Ladeprogramms für die Prozesse der App verwendet werden sollen.

Die DLL-Suchreihenfolge für Windows-Apps enthält Pakete im Paketabhängigkeitsdiagramm, wenn die Pakete über Ausführungsrechte verfügen. Standardmäßig umfasst dies Haupt-, optionale und Frameworkpakete, obwohl dies durch das uap6:AllowExecution-Element im Paketmanifest überschrieben werden kann.

Ein Paket, das in der DLL-Suchreihenfolge enthalten ist, enthält standardmäßig seinen effektiven Pfad. Weitere Informationen zu effektiven Pfaden finden Sie unter der EffectivePath-Eigenschaft (WinRT) und der PackagePathType-Enumeration (Win32).

Wenn ein Paket uap6:LoaderSearchPathOverride angibt, werden diese Informationen anstelle des effektiven Pfads des Pakets verwendet.

Jedes Paket kann nur eine uap6:LoaderSearchPathOverride-Erweiterung enthalten. Das bedeutet, du kannst deinem Hauptpaket und dann jedem deiner optionalen Pakete und zugehörigen Sätzen eine Erweiterung hinzufügen.

XML-Namespace

http://schemas.microsoft.com/appx/manifest/uap/windows10/6

Elemente und Attribute dieser Erweiterung

Deklariere diese Erweiterung auf der Paketebene deines App-Manifests.

<Extension Category="windows.loaderSearchPathOverride">
  <LoaderSearchPathOverride>
    <LoaderSearchPathEntry FolderPath="[path]"/>
  </LoaderSearchPathOverride>
</Extension>

Name Beschreibung
Category Immer windows.loaderSearchPathOverride.
FolderPath Der Pfad des Ordners, der Ihre DLL-Dateien enthält. Gib einen Pfad relativ zum Stammordner des Pakets an. Du kannst bis zu fünf Pfade in einer Erweiterung angeben. Wenn das System nach Dateien im Stammordner des Pakets suchen soll, verwende eine leere Zeichenfolge für einen dieser Pfade. Fügen Sie keine doppelten Pfade ein, und stellen Sie sicher, dass die Pfade keine voran- bzw. nachgestellten Schrägstriche oder umgekehrten Schrägstriche enthalten.

Das System durchsucht keine Unterordner. Stelle deshalb sicher, dass du jeden Ordner mit DLL-Dateien, die das System laden soll, explizit auflistest.

Beispiel

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

Integration in den Datei-Explorer

Unterstütze Benutzer beim Organisieren deiner Dateien und interagiere auf vertraute Weise mit ihnen.

Definieren des Anwendungsverhaltens, wenn Benutzer mehrere Dateien gleichzeitig auswählen und öffnen

Gib an, wie sich die App verhält, wenn ein Benutzer mehrere Dateien gleichzeitig öffnet.

XML-Namespaces

  • 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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]" MultiSelectModel="[SelectionModel]">
        <SupportedVerbs>
            <Verb Id="Edit" MultiSelectModel="[SelectionModel]">Edit</Verb>
        </SupportedVerbs>
        <SupportedFileTypes>
            <FileType>"[FileExtension]"</FileType>
        </SupportedFileTypes>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
MultiSelectModel Siehe unten
FileType Die relevanten Dateierweiterungen.

MultiSelectModel

Bei gepackten Desktop-Apps stehen die gleichen drei Optionen zur Verfügung wie bei regulären Desktop-Apps.

  • Player: Deine Anwendung wird einmalig aktiviert. Alle der ausgewählten Dateien werden als Argumentparameter an deine Anwendung übergeben.
  • Single: Deine App wird einmalig für die erste ausgewählte Datei aktiviert. Andere Dateien werden ignoriert.
  • Document: Für jede ausgewählte Dateien wird jeweils eine neue (separate) Instanz deiner Anwendung aktiviert.

Für unterschiedliche Dateitypen und Aktionen können unterschiedliche Einstellungen festgelegt werden. So können beispielsweise Dokumente im Modus Document und Bilder im Modus Player geöffnet werden.

Beispiel

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

Wenn der Benutzer 15 oder weniger Dateien öffnet, lautet die Standardauswahl des MultiSelectModel-Attributs Player. Andernfalls lautet der Standardwert Document. UWP-Apps werden immer als Player gestartet.

Anzeigen von Dateiinhalten in einem Miniaturbild im Datei-Explorer

Ermögliche es Benutzern, eine Miniaturansicht des Dateiinhalts anzuzeigen, wenn für das Dateisymbol „Mittelgroße Symbole“, „Große Symbole“ oder „Extra große Symbole“ festgelegt ist.

XML-Namespace

  • 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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
        <SupportedFileTypes>
            <FileType>"[FileExtension]"</FileType>
        </SupportedFileTypes>
        <ThumbnailHandler
            Clsid  ="[Clsid  ]" />
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
FileType Die relevanten Dateierweiterungen.
Clsid Die Klassen-ID deiner App.

Beispiel

<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">
            <uap2:SupportedFileTypes>
              <uap:FileType>.bar</uap:FileType>
            </uap2:SupportedFileTypes>
            <desktop2:ThumbnailHandler
              Clsid  ="20000000-0000-0000-0000-000000000001"  />
            </uap3:FileTypeAssociation>
         </uap::Extension>
      </Extensions>
    </Application>
  </Applications>
</Package>

Anzeigen von Dateiinhalten im Vorschaubereich des Datei-Explorers

Ermögliche es Benutzern, die Inhalte einer Datei im Vorschaubereich des Datei-Explorers anzuzeigen.

XML-Namespace

  • 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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
        <SupportedFileTypes>
            <FileType>"[FileExtension]"</FileType>
        </SupportedFileTypes>
        <DesktopPreviewHandler Clsid  ="[Clsid  ]" />
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
FileType Die relevanten Dateierweiterungen.
Clsid Die Klassen-ID deiner App.

Beispiel

<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">
            <uap2SupportedFileTypes>
              <uap:FileType>.bar</uap:FileType>
                </uap2SupportedFileTypes>
              <desktop2:DesktopPreviewHandler Clsid ="20000000-0000-0000-0000-000000000001" />
           </uap3:FileTypeAssociation>
        </uap:Extension>
      </Extensions>
    </Application>
  </Applications>
</Package>

Ermöglichen der Gruppierung von Dateien mithilfe der Spalte „Art“ im Datei-Explorer

Du kannst einen oder mehrere vordefinierte Werte für die Dateitypen mit dem Kind-Feld zuordnen.

Im Datei-Explorer können Benutzer diese Dateien mithilfe dieses Felds gruppieren. Systemkomponenten verwenden dieses Feld auch für andere Zwecke, beispielsweise für die Indizierung.

Weitere Informationen zum Kind-Feld und den Werten, die du für dieses Feld verwenden kannst, findest du unter Verwenden von Kind-Namen.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10
  • http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fileTypeAssociation">
    <FileTypeAssociation Name="[Name]">
        <SupportedFileTypes>
            <FileType>"[FileExtension]"</FileType>
        </SupportedFileTypes>
        <KindMap>
            <Kind value="[KindValue]">
        </KindMap>
    </FileTypeAssociation>
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
FileType Die relevanten Dateierweiterungen.
value Ein gültiger Kind-Wert

Beispiel

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

Bereitstellen von Dateieigenschaften für Suche, Index, Eigenschaftendialogfelder und Detailbereich

XML-Namespace

  • 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

Elemente und Attribute dieser Erweiterung

<uap:Extension Category="windows.fileTypeAssociation">
    <uap:FileTypeAssociation Name="[Name]">
        <SupportedFileTypes>
            <FileType>.bar</FileType>
        </SupportedFileTypes>
        <DesktopPropertyHandler Clsid ="[Clsid]"/>
    </uap:FileTypeAssociation>
</uap:Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Mit diesem Namen kannst du Dateitypen organisieren und gruppieren. Der Name darf nur Kleinbuchstaben und keine Leerzeichen umfassen.
FileType Die relevanten Dateierweiterungen.
Clsid Die Klassen-ID deiner App.

Beispiel

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

Angeben eines Kontextmenühandlers für einen Dateityp

Wenn deine Desktopanwendung einen Kontextmenühandler definiert, verwende diese Erweiterung zum Registrieren des Menühandlers.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/foundation/windows10
  • http://schemas.microsoft.com/appx/manifest/desktop/windows10/4

Elemente und Attribute dieser Erweiterung

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

Die vollständige Schemareferenz findest du hier: com:ComServer und desktop4:FileExplorerContextMenus.

Instructions

Folge diesen Anweisungen, um deinen Kontextmenühandler zu registrieren.

  1. Implementiere in deiner Desktopanwendung einen Kontextmenühandler, indem du die Schnittstelle IExplorerCommand oder IExplorerCommandState implementierst. Siehe hierzu das Codebeispiel ExplorerCommandVerb. Stelle sicher, dass du eine Klassen-GUID für jedes deiner Implementierungsobjekte definierst. Beispielsweise definiert der folgende Code eine Klassen-ID für eine Implementierung von IExplorerCommand.

    class __declspec(uuid("d0c8bceb-28eb-49ae-bc68-454ae84d6264")) CExplorerCommandVerb;
    
  2. Gib in deinem Paketmanifest eine com:ComServer-Anwendungserweiterung an, die einen COM-Ersatzserver mit der Klassen-ID der Implementierung deines Kontextmenühandlers registriert.

    <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. Gib in deinem Paketmanifest eine desktop4:FileExplorerContextMenus-Anwendungserweiterung an, die die Implementierung deines Kontextmenühandlers registriert.

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

Beispiel

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
  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>

Anzeigen von Dateien aus deinem Clouddienst im Datei-Explorer

Registriere die Handler, die du in deiner Anwendung implementierst. Du kannst außerdem Kontextmenüoptionen hinzufügen, die angezeigt werden, wenn deine Benutzer im Datei-Explorer mit der rechten Maustaste auf die cloudbasierten Dateien klicken.

XML-Namespace

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

Elemente und Attribute dieser Erweiterung

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

Name Beschreibung
Category Immer windows.cloudfiles.
iconResource Das Symbol, das deinen Clouddateianbieter-Dienst repräsentiert. Dieses Symbol wird im Navigationsbereich des Datei-Explorers angezeigt. Benutzer wählen dieses Symbol aus, um Dateien aus deinem Clouddienst anzuzeigen.
CustomStateHandler Clsid Die Klassen-ID der App, die den CustomStateHandler implementiert. Das System verwendet diese Klassen-ID, um benutzerdefinierte Statuswerte und Spalten für Clouddateien anzufordern.
ThumbnailProviderHandler Clsid Die Klassen-ID der App, die den ThumbnailProviderHandler implementiert. Das System verwendet diese Klassen-ID, um Miniaturansichten für Clouddateien anzufordern.
ExtendedPropertyHandler Clsid Die Klassen-ID der App, die den ExtendedPropertyHandler implementiert. Das System verwendet diese Klassen-ID, um erweiterte Eigenschaften für eine Clouddatei anzufordern.
Verb Der Name, der im Kontextmenü des Datei-Explorers für Dateien angezeigt wird, die von deinem Clouddienst bereitgestellt werden.
Id Die eindeutige ID des Verbs.

Beispiel

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

Starten deiner Anwendung auf unterschiedlicher Weise

Starten deiner Anwendung über ein Protokoll

Protokollzuordnungen ermöglichen es anderen Programmen und Systemkomponenten, mit deiner gepackten App zu interagieren. Wenn deine gepackte App über ein Protokoll gestartet wird, kannst du bestimmte Parameter zur Übergabe an die Aktivierungsereignisargumente angeben, um ein entsprechendes Verhalten zu erreichen. Parameter werden nur für gepackte, als vertrauenswürdig eingestufte Apps unterstützt. UWP-Apps können keine Parameter verwenden.

XML-Namespace

http://schemas.microsoft.com/appx/manifest/uap/windows10/3

Elemente und Attribute dieser Erweiterung

<Extension
    Category="windows.protocol">
  <Protocol
      Name="[Protocol name]"
      Parameters="[Parameters]" />
</Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.protocol.
Name Der Name des Protokolls.
Parameter Die Liste der Parameter und Werte, die bei der Aktivierung deiner App als Ereignisargumente an deine App übergeben werden sollen. Wenn eine Variable einen Dateipfad enthalten kann, schließe den Parameterwert in Anführungszeichen ein. So werden Probleme vermieden, die bei Pfaden mit Leerzeichen auftreten können.

Beispiel

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

Starten deiner Anwendung über einen Alias

Benutzer und andere Prozesse können einen Alias verwenden, um deine App zu starten, ohne den vollständigen Pfad zu deiner App angeben zu müssen. Du kannst diesen Aliasnamen angeben.

XML-Namespaces

  • http://schemas.microsoft.com/appx/manifest/uap/windows10/3
  • http://schemas.microsoft.com/appx/manifest/desktop/windows10

Elemente und Attribute dieser Erweiterung

<uap3:Extension
    Category="windows.appExecutionAlias"
    Executable="[ExecutableName]"
    EntryPoint="Windows.FullTrustApplication">
    <uap3:AppExecutionAlias>
        <desktop:ExecutionAlias Alias="[AliasName]" />
    </uap3:AppExecutionAlias>
</uap3:Extension>
Name Beschreibung
Category Immer windows.appExecutionAlias.
Ausführbare Datei Der relative Pfad zur ausführbaren Datei, die beim Aufrufen des Alias gestartet wird.
Alias Der Kurzname für deine App. Er muss immer mit der Erweiterung „.exe“ enden. Für die einzelnen Anwendungen im Paket kann immer nur einzelner App-Ausführungsalias angegeben werden. Wenn sich mehrere Apps mit dem gleichen Alias registrieren, ruft das System die zuletzt registrierte App auf. Wählen Sie daher einen eindeutigen Alias, um die Wahrscheinlichkeit einer Überschreibung durch andere Apps möglichst gering zu halten.

Beispiel

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

Die vollständige Schemareferenz findest du hier.

Starten einer ausführbaren Datei, wenn sich Benutzer bei Windows anmelden

Startaufgaben ermöglichen deiner App das automatische Ausführen einer ausführbaren Datei, wenn sich ein Benutzer anmeldet.

Hinweis

Der Benutzer muss deine App mindestens einmal starten, um diese Startaufgabe zu registrieren.

Deine App kann mehrere Startaufgaben deklarieren. Die Aufgaben werden unabhängig voneinander gestartet. Alle Startaufgaben werden im Task-Manager auf der Registerkarte Autostart mit dem Namen aus deinem App-Manifest und dem Symbol deiner App angezeigt. Der Task-Manager analysiert automatisch die Startauswirkungen Ihrer Aufgaben.

Benutzer können die Startaufgabe Ihrer App manuell mithilfe des Task-Managers deaktivieren. Wenn ein Benutzer eine Aufgabe deaktiviert, kannst du sie nicht programmgesteuert reaktivieren.

XML-Namespace

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

Elemente und Attribute dieser Erweiterung

<Extension
    Category="windows.startupTask"
    Executable="[ExecutableName]"
    EntryPoint="Windows.FullTrustApplication">
  <StartupTask
      TaskId="[TaskID]"
      Enabled="true"
      DisplayName="[DisplayName]" />
</Extension>
Name Beschreibung
Category Immer windows.startupTask.
Ausführbare Datei Der relative Pfad der ausführbaren Datei, die gestartet werden soll.
TaskId Ein eindeutiger Bezeichner für deine Aufgabe. Mit diesem Bezeichner kann deine App die APIs in der Windows.ApplicationModel.StartupTask-Klasse aufrufen, um eine Startaufgabe programmgesteuert zu aktivieren oder zu deaktivieren.
Aktiviert Gibt an, ob die Aufgabe zunächst aktiviert oder deaktiviert wird. Aktivierte Aufgaben werden bei der nächsten Anmeldung des Benutzers ausgeführt (es sei denn, der Benutzer deaktiviert sie).
DisplayName Der Name der Aufgabe, die im Task-Manager angezeigt wird. Du kannst diese Zeichenfolge mit ms-resource lokalisieren.

Beispiel

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

Ermöglichen des Anwendungsstarts beim Verbinden eines Geräts mit dem Benutzer-PC

Du kannst deine Anwendung als Option für die automatische Wiedergabe anzeigen, wenn ein Benutzer ein Gerät an seinen PC anschließt.

XML-Namespace

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

Elemente und Attribute dieser Erweiterung

<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>
Name Beschreibung
Category Immer windows.autoPlayHandler.
ActionDisplayName Diese Zeichenfolge repräsentiert die Aktion, die Benutzer für ein Gerät ausführen können, das sie an einen PC anschließen (beispielsweise „Dateien importieren“ oder „Video wiedergeben“).
ProviderDisplayName Eine Zeichenfolge, die deine App oder deinen Dienst repräsentiert (beispielsweise „Contoso-Videoplayer“).
ContentEvent Der Name eines Inhaltsereignisses, durch das Benutzer eine Aufforderung zu deinem ActionDisplayName und ProviderDisplayName erhalten. Ein Inhaltsereignis wird ausgelöst, wenn ein Volumegerät wie etwa die Speicherkarte einer Kamera, eine DVD oder ein USB-Stick in den PC eingelegt bzw. daran angeschlossen wird. Die vollständige Liste dieser Ereignisse findest du hier.
Verb Die Einstellung „Verb“ dient zum Angeben eines Werts, der für die ausgewählte Option an deine App übergeben wird. Sie können mehrere Startaktionen für Ereignisse der automatischen Wiedergabe angeben und mit der Einstellung Verb ermitteln, welche Option ein Benutzer für Ihre App ausgewählt hat. Für welche Option sich der Benutzer entschieden hat, erfahren Sie durch Überprüfen der verb-Eigenschaft der an die App übergebenen Startereignisargumente. Für die Einstellung Verb können Sie einen beliebigen Wert verwenden. Einzige Ausnahme ist open: Dieser Wert ist reserviert.
DropTargetHandler Die Klassen-ID der Anwendung, die die IDropTarget-Schnittstelle implementiert. Dateien von Wechselmedien werden an die Drop-Methode deiner IDropTarget-Implementierung übergeben.
Parameter Du musst die IDropTarget-Schnittstelle nicht für alle Inhaltsereignisse implementieren. Für jedes der Inhaltsereignisse kannst du Befehlszeilenparameter bereitstellen, anstatt die IDropTarget-Schnittstelle zu implementieren. Bei diesen Ereignissen verwendet die automatische Wiedergabe diese Befehlszeilenparameter, um deine App zu starten. Du kannst durch eine Analyse dieser Parameter im Initialisierungscode deiner App festzustellen, ob sie von der automatischen Wiedergabe gestartet wurde, und dann deine benutzerdefinierte Implementierung bereitstellen.
DeviceEvent Der Name eines Geräteereignisses, bei dem Benutzer eine Aufforderung zu deinem ActionDisplayName und ProviderDisplayName erhalten. Ein Geräteereignis wird ausgelöst, wenn ein Gerät an den PC angeschlossen wird. Geräteereignisse beginnen mit der Zeichenfolge WPD und sind hier aufgelistet.
HWEventHandler Die Klassen-ID der App, die die IHWEventHandler-Schnittstelle implementiert.
InitCmdLine Der Zeichenfolgenparameter, den du an die Initialize-Methode der IHWEventHandler-Schnittstelle übergeben möchtest.

Beispiel

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

Automatischer Neustart nach dem Empfang eines Updates aus dem Microsoft Store

Wenn deine Anwendung geöffnet ist, wenn Benutzer ein Update installieren, wird die Anwendung geschlossen.

Wenn du möchtest, dass die Anwendung nach Abschluss des Updates neu gestartet wird, rufe die RegisterApplicationRestart ist-Funktion in jedem Prozess auf, der neu gestartet werden soll.

Jedes aktive Fenster in deiner Anwendung empfängt eine WM_QUERYENDSESSION-Nachricht. An diesem Punkt kann deine Anwendung erneut die RegisterApplicationRestart ist-Funktion aufrufen, um die Befehlszeile bei Bedarf zu aktualisieren.

Wenn jedes aktive Fenster in deiner Anwendung die WM_ENDSESSION-Nachricht empfängt, sollte die Anwendung die Daten speichern und herunterfahren.

Hinweis

Die aktiven Fenster empfangen außerdem die WM_CLOSE-Nachricht, falls die Anwendung die WM_ENDSESSION-Nachricht nicht verarbeitet.

An diesem Punkt hat deine Anwendung 30 Sekunden Zeit, um die eigenen Prozesse zu schließen. Andernfalls wird deren Beendigung durch die Plattform erzwungen.

Nachdem das Update abgeschlossen ist, wird deine App neu gestartet.

Zusammenarbeit mit anderen Anwendungen

Führe eine Integration in andere Apps durch, starte weitere Prozesse, oder teile Informationen.

Anzeigen deiner Anwendung als Druckziel in Anwendungen mit Druckunterstützung

Wenn Benutzer Daten aus einer anderen Anwendung wie z. B. Editor drucken möchten, kannst du deine App als Druckziel in der Liste der verfügbaren Druckziele der App anzeigen lassen.

Du musst deine Anwendung so einrichten, dass sie Daten im XPS-Format (XML Paper Specification) empfängt.

XML-Namespaces

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

Elemente und Attribute dieser Erweiterung

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

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.appPrinter.
DisplayName Der Name, der in der Liste der Druckziele für eine App angezeigt werden soll.
Parameter Alle Parameter, die deine App zur ordnungsgemäßen Verarbeitung der Anforderung benötigt.

Beispiel

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

Ein Beispiel zur Verwendung dieser Erweiterung findest du hier.

Freigeben von Schriftarten für andere Windows-Anwendungen

Gibt deine benutzerdefinierten Schriftarten für andere Windows-Anwendungen frei.

Hinweis

Bevor Sie eine App, die diese Erweiterung verwendet, beim Store einreichen können, müssen Sie zunächst die Genehmigung des Store-Teams einholen. Um eine Genehmigung zu erhalten, wechseln Sie zu https://aka.ms/storesupport, klicken Sie auf Kontakt, und wählen Sie die Optionen aus, die für das Einreichen von Apps an das Dashboard relevant sind. Dieser Genehmigungsprozess trägt dazu bei, sicherzustellen, dass keine Konflikte zwischen den von Ihrer App installierten Schriftarten und den mit dem Betriebssystem installierten Schriftarten auftreten. Wenn Sie keine Genehmigung erhalten, erhalten Sie beim Senden Ihrer App einen Fehler ähnlich dem folgenden: „Überprüfungsfehler bei der Paketannahme: Die Erweiterung „windows.sharedFonts“ kann nicht mit diesem Konto verwendet werden. Wenn Sie eine Berechtigung zum Verwenden dieser Erweiterung anfordern möchten, wenden Sie sich an unser Supportteam.“

XML-Namespaces

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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.sharedFonts">
    <SharedFonts>
      <Font File="[FontFile]" />
    </SharedFonts>
  </Extension>

Die vollständige Schemareferenz findest du hier.

Name Beschreibung
Category Immer windows.sharedFonts.
Datei Die Datei mit der Schriftart, die du freigeben möchtest.

Beispiel

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

Starten eines Win32-Prozesses aus einer UWP-App

Starte einen Win32-Prozess, der als vollständig vertrauenswürdig eingestuft wird.

XML-Namespaces

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

Elemente und Attribute dieser Erweiterung

<Extension Category="windows.fullTrustProcess" Executable="[executable file]">
  <FullTrustProcess>
    <ParameterGroup GroupId="[GroupID]" Parameters="[Parameters]"/>
  </FullTrustProcess>
</Extension>
Name Beschreibung
Category Immer windows.fullTrustProcess.
GroupID Eine Zeichenfolge zum Identifizieren einer Reihe von Parametern, die du an die ausführbare Datei übergeben möchtest.
Parameter Parameter, die du an die ausführbare Datei übergeben möchtest.

Beispiel

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

Diese Erweiterung kann nützlich sein, wenn du eine UWP-Benutzerschnittstelle erstellen möchtest, die auf allen Geräten ausgeführt werden kann, die Komponenten deiner Win32-Anwendung aber weiterhin als vollständig vertrauenswürdig eingestuft werden sollen.

Erstelle einfach ein Windows-App-Paket für deine Win32-App. Füge diese Erweiterung dann der Paketdatei deiner UWP-App hinzu. Diese Erweiterungen gibt an, dass du eine ausführbare Datei im Windows-App-Paket starten möchtest. Wenn du eine Kommunikation zwischen deiner UWP-App und deiner Win32-App ermöglichen möchtest, kannst du hierzu einen oder mehrere App-Dienste festlegen. Weitere Informationen zu diesem Szenario findest du hier.

Nächste Schritte

Haben Sie Fragen? Frage uns auf Stack Overflow. Unser Team überwacht diese Tags. Du kannst uns auch hier fragen.