Freigeben über


Behandeln der Dateiaktivierung

Wichtige APIs

Ihre App kann sich registrieren, um als Standardhandler für einen bestimmten Dateityp zu werden. Sowohl Windows-Desktopanwendungen als auch Universelle Windows-Plattform (UWP)-Apps können als Standarddateihandler registriert werden. Wenn der Benutzer Ihre App als Standardhandler für einen bestimmten Dateityp auswäht, wird die App aktiviert, wenn dieser Dateityp gestartet wird.

Es wird empfohlen, dass Sie sich nur für einen Dateityp registrieren, wenn Sie erwarten, dass alle Dateistarts für diesen Dateityp behandelt werden. Wenn Ihre App den Dateityp nur intern verwenden muss, müssen Sie sich nicht registrieren, um der Standardhandler zu sein. Wenn Sie sich für einen Dateityp registrieren, müssen Sie dem Endbenutzer die Funktionalität bereitstellen, die erwartet wird, wenn Ihre App für diesen Dateityp aktiviert wird. Beispielsweise kann sich eine Bildanzeige-App registrieren, um eine .jpg Datei anzuzeigen. Weitere Informationen zu Dateizuordnungen finden Sie unter Richtlinien für Dateitypen und URIs.

Diese Schritte zeigen, wie Sie sich für einen benutzerdefinierten Dateityp, alsdk und wie Sie 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, Ihre 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 Aktivierungsereignisse nur für die im Paketmanifest aufgeführten Dateierweiterungen. Hier erfahren Sie, wie Sie angeben, dass Ihre App die Dateien mit der .alsdk Erweiterung verarbeitet.

  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". Weitere Informationen zu bezeichnern, die von Dateizuordnungen verwendet werden, finden Sie unter "Programmatic Identifiers ".

    Hier ist eine kurze Beschreibung der einzelnen Felder, die Sie im Manifest-Designer ausfüllen können:

Feld Beschreibung
Anzeigename Geben Sie den Anzeigenamen für eine Gruppe von Dateitypen an. Der Anzeigename wird verwendet, um den Dateityp in den "Standardprogramme festlegen" im Systemsteuerung zu identifizieren.
Logo Geben Sie das Logo an, das zum Identifizieren des Dateityps auf dem Desktop und in den Standardprogrammen auf dem Systemsteuerung verwendet wird. Wenn kein Logo angegeben ist, wird das kleine Logo der Anwendung verwendet.
Infotipp Geben Sie den Infotipp für eine Gruppe von Dateitypen an. Dieser QuickInfo-Text wird angezeigt, wenn der Benutzer auf das Symbol für eine Datei dieses Typs zeigt.
Name Wählen Sie einen Namen für eine Gruppe von Dateitypen aus, die denselben Anzeigenamen, das Logo, den Infotipp und die Kennzeichnungen bearbeiten. Wählen Sie einen Gruppennamen aus, der über App-Updates hinweg gleich bleiben kann. Beachten Sie, dass der Name in allen Kleinbuchstaben enthalten sein muss.
Inhaltstyp Geben Sie den MIME-Inhaltstyp an, z . B. bild/jpeg, für einen bestimmten Dateityp. Wichtiger Hinweis zu zulässigen Inhaltstypen: Hier ist eine alphabetische Liste der MIME-Inhaltstypen, die Sie nicht in das Paketmanifest eingeben können, da sie entweder reserviert oder verboten sind: Application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Dateityp Geben Sie den zu registrierenden Dateityp an, z. B. ".jpeg". Reservierte und unzulässige Dateitypen: Siehe Reservierte URI-Schemanamen und Dateitypen für eine alphabetische Liste von Dateitypen für integrierte Apps, die Sie nicht für Ihre UWP-Apps registrieren können, da sie entweder reserviert oder verboten sind.
  1. Geben Sie alsdk als Namen 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 Änderung in "package.appxmanifest" zu speichern.

Die obigen Schritte fügen dem Paketmanifest ein Erweiterungselement wie dieses hinzu. Die Kategorie "windows.fileTypeAssociation " gibt an, dass die App Dateien mit der .alsdk Erweiterung verarbeitet.

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

Apps, die zum Standard für einen Dateityp werden, werden an verschiedenen Stellen im gesamten System symbole angezeigt. Diese Symbole werden z. B. in:

  • Ansicht der Windows Explorer-Elemente, Kontextmenüs und des Menübands
  • Standardprogramme Systemsteuerung
  • Dateiauswahl
  • Suchergebnisse auf der Startseite

Fügen Sie ein Symbol mit 44 x 44 in Ihr Projekt ein, damit Ihr Logo an diesen Speicherorten angezeigt werden kann. Passen Sie das Erscheinungsbild des App-Kachellogos an, und verwenden Sie die Hintergrundfarbe Ihrer App, anstatt das Symbol transparent zu gestalten. Lassen Sie das Logo auf den Rand erweitern, ohne ihn zu auffüllen. Testen Sie Ihre Symbole auf weißen Hintergründen. Weitere Informationen zu Symbolen finden Sie in den Richtlinien für Kachel- und Symbolressourcen .

Schritt 3: Behandeln des aktivierten 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, auf dem die App gestartet wurde und nicht auf den 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 Navigationsbackstack für den neuen XAML-Frame keine vorherigen Inhalte, die die App beim Anhalten im aktuellen Fenster haben könnte. Wenn Sie einen einzelnen XAML-Frame für den Start und für Dateiverträge verwenden möchten, 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 einschließen, mit der der Benutzer zur obersten Seite der App zurückkehren kann.

Hinweise

Die empfangenen Dateien können von einer nicht vertrauenswürdigen Quelle stammen. Es wird empfohlen, den Inhalt einer Datei zu überprüfen, bevor Sie entsprechende Maßnahmen ergreifen.

Vollständiges Beispiel

Konzepte

Aufgaben

Richtlinien

Verweis