Behandeln der Dateiaktivierung
Wichtige APIs
- Windows.ApplicationModel.Activation.FileActivatedEventArgs
- Windows.UI.Xaml.Application.OnFileActivated
Ihre App kann registriert werden, um der Standardhandler für einen bestimmten Dateityp zu werden. Sowohl Windows-Desktopanwendungen als auch UWP-Apps (Universelle Windows-Plattform) können als Standarddateihandler registriert werden. Wenn Ihre App vom Benutzer als Standardhandler für einen bestimmten Dateityp ausgewählt wird, wird sie dann aktiviert, wenn der Dateityp gestartet wird.
Wir empfehlen, die Registrierung für einen Dateityp nur durchzuführen, wenn davon auszugehen ist, dass alle entsprechenden Vorgänge für einen bestimmten Dateityp verarbeitet werden. Wenn der Dateityp von Ihrer App nur intern verwendet wird, ist die Registrierung eines Standardhandlers nicht erforderlich. Wenn Sie sich entscheiden, die Registrierung für eine bestimmten Dateityp durchzuführen, müssen Sie die entsprechenden Funktionen bereitstellen, die vom Benutzer bei der Aktivierung für diesen Dateityp erwartet werden. Beispielsweise kann eine Bildanzeige-App für das Anzeigen des Dateityps JPG registriert werden. Weitere Informationen zu Dateizuordnungen finden Sie unter Richtlinien für Dateitypen und URIs.
Die folgenden Schritte zeigen, wie Sie den benutzerdefinierten Dateityp „.alsdk“ registrieren und Ihre App aktivieren, wenn der Benutzer eine ALSDK-Datei startet.
Hinweis In UWP-Apps sind bestimmte URIs und Dateierweiterungen für die Verwendung durch integrierte Apps und das Betriebssystem reserviert. Versuche, die App mit einem reservierten URI oder einer reservierten Dateierweiterung zu registrieren, werden ignoriert. Weitere Informationen finden Sie unter Reservierte Datei- und URI-Schemanamen.
Schritt 1: Angeben des Erweiterungspunkts im Paketmanifest
Die App empfängt nur für die im Paketmanifest angegebenen Dateierweiterungen Aktivierungsereignisse. Im Folgenden wird beschrieben, wie Sie festlegen, dass die App Dateien mit der Erweiterung .alsdk
behandelt.
Doppelklicken Sie im Projektmappen-Explorer auf „package.appxmanifest“, um den Manifest-Designer zu öffnen. Wählen Sie die Registerkarte Deklarationen und dann in der Dropdownliste Verfügbare Deklarationen die Option Dateitypzuordnungen aus, und klicken Sie dann auf Hinzufügen. Ausführliche Informationen zu Bezeichnern, die von Dateizuordnungen verwendet werden, finden Sie unter ProgIDs.
Es folgt eine kurze Beschreibung der Felder, die Sie im Manifest-Designer ausfüllen können:
Feld | BESCHREIBUNG |
---|---|
Anzeigename | Geben Sie den Anzeigenamen für eine Gruppe von Dateitypen an. Anhand des Anzeigenamens wird in der Systemsteuerung unter Standardprogramme festlegen der Dateityp identifiziert. |
Logo | Geben Sie das Logo zur Identifikation des Dateityps auf dem Desktop in der Systemsteuerung unter Standardprogramme festlegen an. Wenn kein Logo angegeben wird, wird das kleine Logo der Anwendung verwendet. |
Infotipp | Geben Sie den Infotipp für eine Gruppe von Dateitypen an. Diese QuickInfo wird angezeigt, wenn Benutzer mit der Maus auf das Symbol für eine Datei dieses Typs zeigen. |
Name | Wählen Sie einen Namen für eine Gruppe von Dateitypen aus, die identische Anzeigenamen, Logos, Infotipps und Bearbeitungsflags verwenden. Wählen Sie einen Gruppennamen aus, der auch nach App-Updates unverändert bleiben kann. Hinweis Der Name muss in Kleinbuchstaben enthalten sein. |
Inhaltstyp | Geben Sie den MIME-Inhaltstyp, z. B. image/jpeg, für einen bestimmten Dateityp an. Wichtiger Hinweis zu zulässigen Inhaltstypen: Dies ist eine alphabetische Liste der MIME-Inhaltstypen, die Sie nicht in das Paketmanifest eingeben können, da sie entweder reserviert oder unzulässig sind: application/force-download, application/octet-stream, application/unknown, application/x-msdownload. |
Dateityp | Geben Sie den Dateityp, für den die Registrierung durchgeführt werden soll, mit vorangestelltem Punkt an, z. B. „.jpeg“. Reservierte und unzulässige Dateitypen: Eine alphabetische Liste der Dateitypen für vorinstallierte Apps, die Sie nicht für Ihre UWP-Apps registrieren können, da diese entweder reserviert oder unzulässig sind, finden Sie unter Reservierte URI-Schemanamen und Dateitypen. |
- Geben Sie
alsdk
als Name ein. - Geben Sie
.alsdk
als Dateityp ein. - Geben Sie "images\Icon.png" als Logo ein.
- Drücken Sie STRG+S, um die an „package.appxmanifest“ vorgenommenen Änderungen zu speichern.
Die obigen Schritte fügen dem Paketmanifest ein Extension-Element wie das unten dargestellte hinzu. Die windows.fileTypeAssociation-Kategorie gibt an, dass die App Dateien mit der Erweiterung .alsdk
behandelt.
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="alsdk">
<uap:Logo>images\icon.png</uap:Logo>
<uap:SupportedFileTypes>
<uap:FileType>.alsdk</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
Schritt 2: Hinzufügen der geeigneten Symbole
Die Symbole von Apps, die für einen Dateityp zum Standard werden, werden an verschiedenen Stellen innerhalb des Systems angezeigt. Diese Symbole werden beispielsweise in folgendem Beispiel angezeigt:
- Windows Explorer Elementansicht, Kontextmenüs und Menüband
- Standardprogramme in der Systemsteuerung
- Dateiauswahl
- Suchergebnisse auf dem Startbildschirm
Fügen Sie ein 44x44-Symbol in Ihr Projekt ein, damit Ihr Logo an diesen Speicherorten angezeigt werden kann. Stimmen Sie das Erscheinungsbild des Logos der App-Kachel ab, und verwenden Sie die Hintergrundfarbe der App, anstatt das Symbol transparent darzustellen. Erweitern Sie das Logo bis zum Rand, ohne eine Auffüllung vorzunehmen. Testen Sie Ihre Symbole auf weißem Hintergrund. Weitere Informationen zu Symbolen finden Sie unter Richtlinien für Kachel- und Symbolressourcen .
Schritt 3: Behandeln des activated-Ereignisses
Der OnFileActivated-Ereignishandler empfängt alle Dateiaktivierungsereignisse.
protected override void OnFileActivated(FileActivatedEventArgs args)
{
// TODO: Handle file activation
// The number of files received is args.Files.Count
// The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
' TODO: Handle file activation
' The number of files received is args.Files.Size
' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
// TODO: Handle file activation.
auto numberOfFilesReceived{ args.Files().Size() };
auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
// TODO: Handle file activation
// The number of files received is args->Files->Size
// The name of the first file is args->Files->GetAt(0)->Name
}
Hinweis
Stellen Sie beim Starten über den Dateivertrag sicher, dass die Schaltfläche Zurück den Benutzer zurück zum Bildschirm führt, der die App gestartet hat, und nicht zum vorherigen Inhalt der App.
Es wird empfohlen, für jedes Aktivierungsereignis, das eine neue Seite öffnet, einen neuen XAML-Frame zu erstellen. Auf diese Weise enthält der Navigationsrückstapel für den neuen XAML-Frame keine vorherigen Inhalte, die die App möglicherweise im aktuellen Fenster enthält, wenn sie angehalten wird. Wenn Sie sich entscheiden, einen einzelnen XAML-Frame für den Start und für Dateiverträge zu verwenden, sollten Sie die Seiten im Navigationsjournal des Frames löschen, bevor Sie zu einer neuen Seite navigieren.
Wenn Ihre App über die Dateiaktivierung gestartet wird, sollten Sie die Benutzeroberfläche einbeziehen, die es dem Benutzer ermöglicht, zur oberen Seite der App zurückzukehren.
Hinweise
Die empfangenen Dateien stammen unter Umständen aus einer nicht vertrauenswürdigen Quelle. Wir empfehlen, den Inhalt einer Datei zu überprüfen, bevor Sie sie weiter verarbeiten.
Zugehörige Themen
Vollständiges Beispiel
Konzepte
Aufgaben
Richtlinien
Verweis
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für