Behandeln der Dateiaktivierung

Wichtige APIs

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.

  1. 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.
  1. Geben Sie alsdk als Name ein.
  2. Geben Sie .alsdk als Dateityp ein.
  3. Geben Sie "images\Icon.png" als Logo ein.
  4. 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.

Vollständiges Beispiel

Konzepte

Aufgaben

Richtlinien

Verweis