Integrieren Sie Ihre Desktop-App mit Paketerweiterungen in Windows.
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.
So können Sie beispielsweise eine Erweiterung verwenden, um eine Firewallausnahme festzulegen, Ihre App zur Standard-App für einen Dateityp zu machen oder Startkacheln mit Ihrer App zu verknüpfen. 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 sowie 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). Hierzu zählen sowohl gepackte Apps (siehe Gepackt: Erstellen eines neuen Projekts für eine gepackte C#- oder C++-WinUI 3-Desktop-App) als auch gepackte Apps mit externem Speicherort (siehe Gewähren der Paketidentität durch Verpackung mit externem Speicherort). Weitere Informationen finden Sie auch unter Features, für die Paketidentität benötigt wird.
Benutzerumstellung auf deine App
Unterstütze die Benutzer bei der Umstellung auf deine gepackte App.
- Umleiten Ihrer vorhandenen Desktop-App an Ihre gepackte App
- Verweis auf die gepackte App mit vorhandenen Startkacheln und Taskleistenschaltflächen
- Einstellen, dass Dateien mit der gepackten App und nicht Ihrer Desktop-App geöffnet werden
- Zuordnen Ihrer gepackten App zu einer Gruppe von Dateitypen
- Hinzufügen von Optionen zu den Kontextmenüs von Dateien eines bestimmten Dateityps
- Öffnen bestimmter Dateitypen direkt über eine URL
Umleiten Ihrer vorhandenen Desktop-App an Ihre gepackte App
Wenn Benutzer Ihre vorhandene, nicht gepackte Desktop-App starten, können Sie Ihre gepackte 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
- Fügen Sie Registrierungseinträge hinzu, um die ausführbare Datei der nicht gepackten Desktop-App an Ihre gepackte App umzuleiten.
- 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.
- 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.
- 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 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 |
---|---|
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>
Verwandtes Beispiel
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>
Verwandtes Beispiel
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>
Verwandtes Beispiel
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 "%1"">Edit</uap3:Verb>
<uap3:Verb Id="Print" Extended="true" Parameters="/p "%1"">Print</uap3:Verb>
</uap2:SupportedVerbs>
</uap3:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Verwandtes Beispiel
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
- Platzieren deiner DLL-Dateien in einem beliebigen Ordner des Pakets
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.
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 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
- Anzeigen von Dateiinhalten in einem Miniaturbild im Datei-Explorer
- Anzeigen von Dateiinhalten im Vorschaubereich des Datei-Explorers
- Ermöglichen der Gruppierung von Dateien mithilfe der Spalte „Art“ im Datei-Explorer
- Bereitstellen von Dateieigenschaften für Suche, Index, Eigenschaftendialogfelder und Detailbereich
- Angeben eines Kontextmenühandlers für einen Dateityp
- Anzeigen von Dateien aus deinem Clouddienst im Datei-Explorer
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">
<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>
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">
<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>
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.
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;
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>
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"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
IgnorableNamespaces="desktop4">
<Applications>
<Application>
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:SurrogateServer AppId="d0c8bceb-28eb-49ae-bc68-454ae84d6264" DisplayName="ContosoHandler">
<com:Class Id="d0c8bceb-28eb-49ae-bc68-454ae84d6264" Path="ExplorerCommandVerb.dll" ThreadingModel="STA"/>
</com:SurrogateServer>
</com:ComServer>
</com:Extension>
<desktop4:Extension Category="windows.fileExplorerContextMenus">
<desktop4:FileExplorerContextMenus>
<desktop4:ItemType Type=".contoso">
<desktop4:Verb Id="Command1" Clsid="d0c8bceb-28eb-49ae-bc68-454ae84d6264" />
</desktop4:ItemType>
</desktop4:FileExplorerContextMenus>
</desktop4:Extension>
</Extensions>
</Application>
</Applications>
</Package>
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
- Starten deiner Anwendung über einen Alias
- Starten einer ausführbaren Datei, wenn sich Benutzer bei Windows anmelden
- Ermöglichen des Anwendungsstarts beim Verbinden eines Geräts mit dem Benutzer-PC
- Automatischer Neustart nach dem Empfang eines Updates aus dem Microsoft Store
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 "%1"" />
</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. Sie können feststellen, welche Option der Benutzer ausgewählt hat, indem Sie die Eigenschaft verb der an Ihre Anwendung übergebenen Startup-Ereignis-Argumente überprüfen. 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 Sie möchten, dass die Anwendung nach Abschluss des Updates neu gestartet wird, rufen Sie die Funktion RegisterApplicationRestart 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
- Freigeben von Schriftarten für andere Windows-Anwendungen
- Starten eines Win32-Prozesses aus einer UWP-App
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 die Übermittlung 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/uap/windows10/4
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.
Windows developer