Integrieren Ihrer Desktop-App in Windows mithilfe von Paketerweiterungen

Wenn Ihre Desktop-App gepackt ist (und somit zur Laufzeit über eine Paketidentität verfügt), können Sie Ihre App mithilfe von Erweiterungen in Windows integrieren, indem Sie vordefinierte Erweiterungen im Paketmanifest nutzen. Weitere Informationen finden Sie auch unter Features, für die Paketidentität benötigt wird.

Verwenden Sie beispielsweise eine Erweiterung, um eine Firewall-Ausnahme zu erstellen; legen Sie Ihre App als Standardanwendung für einen Dateityp fest; oder verlinken Sie Startkacheln mit Ihrer App. Um eine Erweiterung zu verwenden, fügen Sie einfach XML zur Paketmanifestdatei Ihrer App hinzu. Es ist kein Code erforderlich.

In diesem Thema werden diese Erweiterungen und die Aufgaben beschrieben, die Sie mithilfe dieser Erweiterungen ausführen können.

Hinweis

Für die in diesem Thema beschriebenen Features muss Ihre App gepackt sein (also zur Laufzeit über eine Paketidentität verfügen). Dazu gehören verpackte Apps (siehe Erstellen Sie Ihr erstes WinUI-Projekt) und verpackte Apps mit externem Speicherort (siehe Paketidentität durch Verpacken mit externem Speicherort gewähren). Weitere Informationen finden Sie auch unter Features, für die Paketidentität benötigt wird.

Benutzerumstellung auf deine App

Helfen Sie Benutzern beim Übergang zu Ihrer verpackten App.

Leiten Sie Ihre vorhandene Desktop-App zu Ihrer verpackten App um.

Wenn Benutzer Ihre vorhandene entpackte Desktop-App starten, können Sie die verpackte App so konfigurieren, dass sie 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 AppExecutionAlias-Erweiterung aktiviert ist, wird die verpackte 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.

Beispiel:

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

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

Deaktiviere die 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 gepackte Version Ihrer App deinstallieren.
  • Der Benutzer kann den Eintrag AppExecutionAlias für Ihre gepackte App unter Einstellungen auf der Seite App-Ausführungsaliase 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
Kategorie Immer windows.appExecutionAlias.
Ausführbare Datei Der relative Pfad zur ausführbaren Datei, die beim Aufrufen des Alias gestartet wird.
Alias Der kurze Name für Ihre 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
Kategorie 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

Sie können sicherstellen, dass Benutzer Ihre neue verpackte Anwendung standardmäßig für bestimmte Dateitypen öffnen, anstatt die Desktopversion Ihrer App zu öffnen.

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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
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 der verpackten Anwendung zu einer Reihe von Dateitypen

Sie können Ihrer gepackten Anwendung Dateityperweiterungen zuordnen. Wenn ein Benutzer mit der rechten Maustaste auf eine Datei im Datei-Explorer klickt und dann die Option " Öffnen mit " auswählt, wird Ihre Anwendung in der Liste der Vorschläge angezeigt. Weitere Informationen zur Verwendung dieser Erweiterung finden Sie unter Integrieren einer verpackten Desktop-App in den 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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Dateityp Die von Ihrer App unterstützte Dateierweiterung.

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 mit einem bestimmten Dateityp

Mit dieser Erweiterung können Sie dem Kontextmenü Optionen hinzufügen, die angezeigt werden, wenn Benutzer im Datei-Explorer mit der rechten Maustaste auf eine Datei klicken.Diese Optionen bieten Benutzern andere Möglichkeiten, mit Ihrer Datei zu interagieren, z. B. drucken, bearbeiten oder eine Vorschau der Datei anzeigen. Weitere Informationen zur Verwendung dieser Erweiterung finden Sie unter Integrieren einer verpackten Desktop-App in den 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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Verb Der Name, der im Kontextmenü des Datei-Explorers angezeigt wird. Diese Zeichenfolge, die ms-resource verwendet, ist lokalisierbar.
Kennung 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 der Argumentparameter und -werte, die dem Verb zugeordnet sind. 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. Sie können das Verhalten Ihrer Anwendung basierend auf verschiedenen Aktivierungsverben anpassen. Wenn eine Variable einen Dateipfad enthalten kann, schließen Sie den Parameterwert in Anführungszeichen um. So werden Probleme vermieden, die bei Pfaden mit Leerzeichen auftreten können. Wenn Ihre Anwendung eine UWP-App ist, können Sie 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 einen Wert von False festgelegt (z. B. immer das Verb anzeigen), wenn nicht angegeben. 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 mithilfe einer URL

Sie können sicherstellen, dass Benutzer Ihre neue verpackte Anwendung standardmäßig für bestimmte Dateitypen öffnen, anstatt die Desktopversion Ihrer App zu öffnen.

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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
UseUrl Gibt an, ob Dateien direkt aus einem URL-Ziel geöffnet werden sollen. Wenn Sie diesen Wert nicht festlegen, versucht Ihre Anwendung, eine Datei mithilfe einer URL zu öffnen, wodurch das System die Datei zuerst lokal herunterlädt.
Parameter Optionale Parameter.
Dateityp Die entsprechenden 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>

Setup-Aufgaben ausführen

Erstellen einer Firewall-Ausnahme für Ihre App

Wenn Ihre Anwendung eine Kommunikation über einen Port erfordert, können Sie Ihre Anwendung zur Liste der Firewall-Ausnahmen hinzufügen.

Hinweis

Um die Erweiterungskategorie „windows.firewallRules“ verwenden zu können (siehe unten), benötigt Ihr Paket die eingeschränkte Funktion Berechtigungsebene der vollen Vertrauenswürdigkeit. Siehe Liste eingeschränkter Funktionen.

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 Sie der Liste der Firewall-Ausnahmen hinzufügen möchten
Direction Gibt an, ob es sich bei der Regel um eine eingehende oder ausgehende Regel handelt.
IP-Protokoll 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 Sie Ihre 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 Ausführungsrechte besitzen. 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

Deklarieren Sie diese Erweiterung auf Paketebene ihres App-Manifests.

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

Name BESCHREIBUNG
Kategorie Immer windows.loaderSearchPathOverride.
FolderPath Der Pfad des Ordners, der Die DLL-Dateien enthält. Gib einen Pfad relativ zum Stammordner des Pakets an. Sie können bis zu fünf Pfade in einer Erweiterung angeben. Wenn das System nach Dateien im Stammordner des Pakets suchen soll, verwenden Sie 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. Stellen Sie daher sicher, dass sie jeden Ordner explizit auflisten, der DLL-Dateien enthält, die das System laden soll.

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>

Mit dem Datei-Explorer integrieren

Helfen Sie Benutzern, Ihre Dateien zu organisieren und auf vertraute Weise mit ihnen zu interagieren.

Definieren, wie sich Ihre Anwendung verhält, wenn Benutzer mehrere Dateien gleichzeitig auswählen und öffnen

Geben Sie an, wie sich Ihre Anwendung 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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Mehrfachauswahlmodell Siehe unten
Dateityp Die entsprechenden Dateierweiterungen.

MultiSelectModel

Verpackte Desktop-Apps haben die gleichen drei Optionen wie normale Desktop-Apps.

  • Player: Ihre Anwendung wird einmal aktiviert. Alle ausgewählten Dateien werden als Argumentparameter an Ihre Anwendung übergeben.
  • Single: Ihre Anwendung wird einmal für die erste ausgewählte Datei aktiviert. Andere Dateien werden ignoriert.
  • Document: Für jede ausgewählte Datei wird eine neue, separate Instanz Ihrer Anwendung aktiviert.

Sie können unterschiedliche Einstellungen für verschiedene Dateitypen und Aktionen festlegen. 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.

Dateiinhalte in einer Miniaturansicht im Datei-Explorer anzeigen

Ermöglichen Sie Benutzern, eine Miniaturansicht des Dateiinhalts zu sehen, wenn das Dateisymbol in mittlerer, großer oder extra großer Größe angezeigt wird.

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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Dateityp Die entsprechenden Dateierweiterungen.
Clsid Die Klassen-ID Ihrer 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">
            <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>

Dateiinhalte im Vorschaubereich des Datei-Explorers anzeigen

Ermöglichen Sie Benutzern die Vorschau der Inhalte einer Datei im Vorschaubereich des Datei-Explorers.

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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Dateityp Die entsprechenden Dateierweiterungen.
Clsid Die Klassen-ID Ihrer 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">
            <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>

Benutzern das Gruppieren von Dateien mithilfe der Spalte "Kind" im Datei-Explorer ermöglichen

Sie können dem Feld Art einen oder mehrere vordefinierte Werte für Ihre Dateitypen zuordnen.

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

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

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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Dateityp Die entsprechenden 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>

Verfügbarmachen von Dateieigenschaften für die Suche, den Index, das Eigenschaftendialogfeld und den 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
Kategorie Immer windows.fileTypeAssociation.
Name Der Name der Dateitypzuordnung. Sie können diesen Namen verwenden, um Dateitypen zu organisieren und zu gruppieren. Der Name darf nur aus Kleinbuchstaben und ohne Leerzeichen bestehen.
Dateityp Die entsprechenden Dateierweiterungen.
Clsid Die Klassen-ID Ihrer 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 Ihre Desktopanwendung einen Kontextmenühandler definiert, verwenden Sie diese Erweiterung, um den Menühandler zu registrieren.

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 finden Sie hier: com:ComServer und desktop4:FileExplorerContextMenus.

Anweisungen

Führen Sie die folgenden Anweisungen aus, um den 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. Stellen Sie sicher, dass Sie eine Klassen-GUID für jedes Ihrer Implementierungsobjekte definieren. Der folgende Code definiert beispielsweise eine Klassen-ID für eine Implementierung von IExplorerCommand.

    class __declspec(uuid("00001111-aaaa-2222-bbbb-3333cccc4444")) 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="00001111-aaaa-2222-bbbb-3333cccc4444" DisplayName="ContosoHandler">
                <com:Class Id="00001111-aaaa-2222-bbbb-3333cccc4444" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/>
            </com:SurrogateServer>
        </com:ComServer>
    </com:Extension>
    
  3. Geben Sie im Paketmanifest eine Desktop4:FileExplorerContextMenus-Anwendungserweiterung an, die die Implementierung des Kontextmenühandlers registriert.

    <desktop4:Extension Category="windows.fileExplorerContextMenus">
        <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type=".rar">
                <desktop4:Verb Id="Command1" Clsid="00001111-aaaa-2222-bbbb-3333cccc4444" />
            </desktop4:ItemType>
        </desktop4:FileExplorerContextMenus>
    </desktop4:Extension>
    

Beispiel

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
  xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
  IgnorableNamespaces="desktop4">
  <Applications>
    <Application>
      <Extensions>
        <com:Extension Category="windows.comServer">
          <com:ComServer>
            <com:SurrogateServer AppId="00001111-aaaa-2222-bbbb-3333cccc4444" DisplayName="ContosoHandler">
              <com:Class Id="00001111-aaaa-2222-bbbb-3333cccc4444" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/>
            </com:SurrogateServer>
          </com:ComServer>
        </com:Extension>
        <desktop4:Extension Category="windows.fileExplorerContextMenus">
          <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type=".contoso">
              <desktop4:Verb Id="Command1" Clsid="00001111-aaaa-2222-bbbb-3333cccc4444" />
            </desktop4:ItemType>
          </desktop4:FileExplorerContextMenus>
        </desktop4:Extension>
      </Extensions>
    </Application>
  </Applications>
</Package>

Festlegen, dass Dateien aus Ihrem Clouddienst im Datei-Explorer angezeigt werden

Registrieren Sie die Handler, die Sie in Ihrer Anwendung implementieren. Sie können auch Kontextmenüoptionen hinzufügen, die angezeigt werden, wenn Benutzer mit der rechten Maustaste auf Ihre cloudbasierten Dateien im Datei-Explorer 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
Kategorie Immer windows.cloudfiles.
iconResource Das Symbol, das Ihren Clouddateianbieterdienst darstellt. Dieses Symbol wird im Navigationsbereich des Datei-Explorers angezeigt. Benutzer wählen dieses Symbol aus, um Dateien aus Ihrem Clouddienst anzuzeigen.
CustomStateHandler CLSID Die Klassen-ID der Anwendung, 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 Anwendung, die den ThumbnailProviderHandler implementiert. Das System verwendet diese Klassen-ID, um Miniaturansichten für Clouddateien anzufordern.
ExtendedPropertyHandler Clsid Die Klassen-ID der Anwendung, 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 Ihrem Clouddienst bereitgestellt werden.
Kennung 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 Sie Ihre Anwendung auf unterschiedliche Weise

Starten Sie Ihre Anwendung, indem Sie ein Protokoll verwenden

Protokollzuordnungen können es anderen Programmen und Systemkomponenten ermöglichen, mit Ihrer verpackten App zu arbeiten. Wenn Die verpackte Anwendung mithilfe eines Protokolls gestartet wird, können Sie bestimmte Parameter angeben, die an die Aktivierungsereignisargumente übergeben werden sollen, damit sie sich entsprechend verhalten kann. 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
Kategorie Immer windows.protocol.
Name Der Name des Protokolls.
Parameter Die Liste der Parameter und Werte, die beim Aktivieren der Anwendung als Ereignisargumente an Ihre Anwendung übergeben werden sollen. Wenn eine Variable einen Dateipfad enthalten kann, schließen Sie den Parameterwert in Anführungszeichen um. 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 Sie Ihre Anwendung mithilfe eines Alias

Benutzer und andere Prozesse können einen Alias verwenden, um Ihre Anwendung zu starten, ohne den vollständigen Pfad zu Ihrer App angeben zu müssen. Sie können 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
Kategorie Immer windows.appExecutionAlias.
Ausführbare Datei Der relative Pfad zur ausführbaren Datei, die beim Aufrufen des Alias gestartet wird.
Alias Der kurze Name für Ihre 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 für denselben Alias registrieren, ruft das System die letzte App auf, die registriert wurde. Stellen Sie daher sicher, dass sie einen eindeutigen Alias auswählen, den andere Apps nicht außer Kraft setzen können.

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 Benutzer sich bei Windows anmelden

Startaufgaben ermöglichen es Ihrer Anwendung, eine ausführbare Datei automatisch auszuführen, wenn sich ein Benutzer anmeldet.

Hinweis

Der Benutzer muss die Anwendung mindestens einmal starten, um diese Startaufgabe zu registrieren.

Ihre Anwendung kann mehrere Startaufgaben deklarieren. Jede Aufgabe wird unabhängig gestartet. Alle Startaufgaben werden im Task-Manager unter der Registerkarte "Start " mit dem Namen angezeigt, den Sie im Manifest Ihrer App und im Symbol Ihrer App angeben. Der Task-Manager analysiert automatisch die Auswirkungen auf den Start Ihrer Aufgaben.

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

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
Kategorie Immer windows.startupTask.
Ausführbare Datei Der relative Pfad der ausführbaren Datei, die gestartet werden soll.
Aufgaben-ID Ein eindeutiger Bezeichner für Ihre Aufgabe. Mit diesem Bezeichner kann Ihre Anwendung 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 ist. Aktivierte Aufgaben werden ausgeführt, wenn sich der Benutzer das nächste Mal anmeldet (es sei denn, der Benutzer deaktiviert sie).
Anzeigename 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, dass Benutzer Ihre Anwendung starten, wenn sie ein Gerät mit ihrem PC verbinden

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
Kategorie Immer windows.autoPlayHandler.
ActionDisplayName Eine Zeichenfolge, die die Aktion darstellt, die Benutzer mit einem Gerät ausführen können, das sie mit einem PC verbinden (z. B. "Dateien importieren" oder "Video wiedergeben").
ProviderDisplayName Eine Zeichenfolge, die Ihre Anwendung oder Ihren Dienst darstellt (z. B. "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. Hier finden Sie die vollständige Liste dieser Ereignisse.
Verb Die Verb-Einstellung identifiziert einen Wert, der für die ausgewählte Option an Ihre Anwendung übergeben wird. Sie können mehrere Startaktionen für AutoPlay-Ereignisse 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. Sie können einen beliebigen Wert für die Verb-Einstellung verwenden, außer "open", welcher reserviert ist.
DropTargetHandler Die Klassen-ID der Anwendung, die die IDropTarget-Schnittstelle implementiert. Dateien von Wechselmedien werden an die Drop-Methode deiner IDropTarget-Implementierung übergeben.
Parameter Sie müssen die IDropTarget Schnittstelle nicht für alle Inhaltsereignisse implementieren. Für jedes Inhaltsereignis könnten Sie Befehlszeilenparameter bereitstellen, anstatt die IDropTarget- Schnittstelle zu implementieren. Für diese Ereignisse startet AutoPlay Ihre Anwendung mithilfe dieser Befehlszeilenparameter. Sie können diese Parameter im Initialisierungscode Ihrer App verarbeiten, um zu ermitteln, ob sie von AutoPlay gestartet wurde, und anschließend Ihre eigene Implementierung anzubieten.
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 mit dem PC verbunden ist. 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>

Automatisch neu starten, nachdem ein Update aus dem Microsoft Store empfangen wurde

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

Wenn diese Anwendung nach Abschluss des Updates neu gestartet werden soll, rufen Sie die RegisterApplicationRestart-Funktion in jedem Prozess auf, den Sie neu starten möchten.

Jedes aktive Fenster in deiner Anwendung empfängt eine WM_QUERYENDSESSION-Nachricht. An diesem Punkt kann Ihre Anwendung die RegisterApplicationRestart-Funktion erneut 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 Ihre Anwendung 30 Sekunden Zeit, um ihre eigenen Prozesse zu schließen, oder die Plattform beendet sie kraftvoll.

Nach Abschluss des Updates wird die Anwendung neu gestartet.

Arbeiten mit anderen Anwendungen

Integration in andere Apps, Starten anderer Prozesse oder Freigeben von Informationen.

Stellen Sie sicher, dass Ihre Anwendung als Druckziel in Anwendungen angezeigt wird, die das Drucken unterstützen

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.

Sie müssen Ihre Anwendung so ändern, dass sie Druckdaten 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
Kategorie Immer windows.appPrinter.
Anzeigename Der Name, der in der Liste der Druckziele für eine App angezeigt werden soll.
Parameter Alle Parameter, die Ihre Anwendung benötigt, um die Anforderung ordnungsgemäß zu verarbeiten.

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

Teilen Sie Ihre benutzerdefinierten Schriftarten mit anderen Windows-Anwendungen. Beachten Sie, dass es zwei verschiedene Versionen der Erweiterungen für freigegebene Schriftarten gibt, die ein geringfügig anderes Verhalten aufweisen. Das Element "uap4:sharedFonts " ist ein untergeordnetes Element von "Application " und ist der Identität einer bestimmten Anwendung zugeordnet. Das Element "uap7:sharedFonts " bietet ähnliche Funktionen, ist jedoch ein untergeordnetes Paketelement und ist der Paketidentität zugeordnet, unabhängig davon, wie viele Apps das Paket enthält. Dazu gehören Pakete, die überhaupt keine Anwendungen enthalten.

Hinweis

Bevor Sie eine App übermitteln können, die diese Erweiterung an den Store verwendet, müssen Sie zuerst eine Genehmigung vom Store-Team erhalten. Um eine Genehmigung zu erhalten, wechseln Sie zu https://aka.ms/storesupport, klicken Sie auf "Kontaktieren Sie uns", und wählen Sie optionen aus, die für das Übermitteln von Apps an das Dashboard relevant sind. Dieser Genehmigungsprozess trägt dazu bei, sicherzustellen, dass es keine Konflikte zwischen Schriftarten gibt, die von Ihrer App installiert sind, und Schriftarten, die mit dem Betriebssystem installiert sind. Wenn Sie keine Genehmigung erhalten, erhalten Sie beim Übermitteln der App eine Fehlermeldung wie die folgende: "Fehler bei der Überprüfung der Paketakzeptanz: Sie können keine Erweiterung "windows.sharedFonts" mit diesem Konto verwenden. Wenden Sie sich an unser Supportteam, wenn Sie Berechtigungen für die Verwendung dieser Erweiterung anfordern möchten."

XML-Namespaces

http://schemas.microsoft.com/appx/manifest/uap/windows10/4 http://schemas.microsoft.com/appx/manifest/uap/windows10/7

Elemente und Attribute dieser Erweiterung

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

Die vollständige Schemareferenz finden Sie unter "uap4:SharedFonts " und "uap7:SharedFonts".

Name BESCHREIBUNG
Kategorie Immer windows.sharedFonts.
Datei Die Datei, die die Schriftarten enthält, die Sie freigeben möchten.

Beispiele

<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>
<Package
  xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
  IgnorableNamespaces="uap4">
  <Applications>
    <Application>
    </Application>
  </Applications>
  <Extensions>
    <uap7:Extension Category="windows.sharedFonts">
      <uap7:SharedFonts>
        <uap7:Font File="Fonts\JustRealize.ttf" />
        <uap7:Font File="Fonts\JustRealizeBold.ttf" />
      </uap7:SharedFonts>
    </uap7:Extension>
  </Extensions>
</Package>

Starten eines Win32-Prozesses aus einer UWP-App (Universelle Windows-Plattform)

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
Kategorie Immer windows.fullTrustProcess.
Gruppen-ID Eine Zeichenfolge, die einen Satz von Parametern identifiziert, die Sie an die ausführbare Datei übergeben möchten.
Parameter Parameter, die Sie an die ausführbare Datei übergeben möchten.

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 Sie eine Benutzeroberfläche für die universelle Windows-Plattform erstellen möchten, die auf allen Geräten ausgeführt wird, aber Sie möchten, dass Komponenten Ihrer Win32-Anwendung weiterhin voll vertrauenswürdig ausgeführt werden.

Erstellen Sie einfach ein Windows-App-Paket für Ihre Win32-App. Fügen Sie diese Erweiterung dann der Paketdatei Ihrer UWP-App hinzu. Diese Erweiterungen geben an, dass Sie eine ausführbare Datei im Windows-App-Paket starten möchten. Wenn Sie zwischen Ihrer UWP-App und Ihrer Win32-App kommunizieren möchten, können Sie dazu einen oder mehrere App-Dienste einrichten. Weitere Informationen zu diesem Szenario findest du hier.

Nächste Schritte

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