Arbeiten mit Shellerweiterungen
Die Funktionen der Shell können mit Registrierungseinträgen und .ini Dateien erweitert werden. Dieser Ansatz zum Erweitern der Shell ist zwar einfach und für viele Zwecke angemessen, ist aber begrenzt. Wenn Sie beispielsweise die Registrierung verwenden, um ein benutzerdefiniertes Symbol für einen Dateityp anzugeben, wird das gleiche Symbol für jede Datei dieses Typs angezeigt. Wenn Sie die Shell mit der Registrierung erweitern, können Sie das Symbol nicht für verschiedene Elemente des Dateityps ändern. Andere Aspekte der Shell, z. B. das Eigenschaftenblatt , das angezeigt werden kann, wenn eine Datei mit der rechten Maustaste geklickt wird, können überhaupt nicht mit der Registrierung geändert werden.
Ein leistungsfähigerer und flexiblerer Ansatz zum Erweitern der Shell ist die Implementierung von Shellerweiterungshandlern. Diese Handler können für eine Vielzahl von Aktionen implementiert werden, die die Shell ausführen kann. Bevor Sie die Aktion ausführen, fragt die Shell den Erweiterungshandler ab und gibt ihr die Möglichkeit, die Aktion zu ändern. Ein gängiges Beispiel ist ein Kontextmenüerweiterungshandler. Wenn eine für einen Dateityp implementiert ist, wird sie jedes Mal abgefragt, wenn mit der rechten Maustaste auf eine der Dateien geklickt wird. Der Handler kann dann dateiweise zusätzliche Menüelemente angeben, anstatt denselben Satz für alle Dateien dieses Dateityps festzulegen.
In diesem Themensatz wird erläutert, wie Sie die Erweiterungshandler implementieren, mit denen Sie eine Vielzahl von Shellaktionen ändern können. Die folgenden Handler sind einem bestimmten Dateityp zugeordnet und ermöglichen es Ihnen, dateiweise anzugeben.
Handler | BESCHREIBUNG |
---|---|
Kontextmenühandler | Wird aufgerufen, bevor das Kontextmenü einer Datei angezeigt wird. Damit können Sie dem Kontextmenü Datei für Datei Elemente hinzufügen. |
Datenhandler | Wird aufgerufen, wenn ein Drag-and-Drop-Vorgang für Shell-Objekte ausgeführt wird. Dadurch können Sie dem Ablageziel zusätzliche Zwischenablageformate bereitstellen. |
Drop-Handler | Wird aufgerufen, wenn ein Datenobjekt über eine Datei gezogen oder gelöscht wird. Es ermöglicht Ihnen, eine Datei zu einem Ablageziel zu machen. |
Symbolhandler | Wird aufgerufen, bevor das Symbol einer Datei angezeigt wird. Dadurch können Sie das Standardsymbol der Datei auf Dateibasis durch ein benutzerdefiniertes Symbol ersetzen. |
Eigenschaftenblatthandler | Wird aufgerufen, bevor das Eigenschaftenblatt Eigenschaften eines Objekts angezeigt wird. Es ermöglicht Ihnen, Seiten hinzuzufügen oder zu ersetzen. |
Miniaturbildhandler | Stellt ein Bild bereit, das das Element darstellt. |
QuickInfo-Handler | Stellt Popuptext bereit, wenn der Benutzer mit dem Mauszeiger auf das Objekt zeigt. |
Metadatenhandler | Bietet Lese- und Schreibzugriff auf Metadaten (Eigenschaften), die in einer Datei gespeichert sind. Dies kann verwendet werden, um die Detailsansicht, Infotips, die Eigenschaftenseite und die Gruppierungsfeatures zu erweitern. |
Andere werden nicht einem bestimmten Dateityp zugeordnet, sondern vor einigen Shellvorgängen aufgerufen.
Handler | BESCHREIBUNG |
---|---|
Spaltenhandler | Wird von Windows Explorer aufgerufen, bevor die Detailansicht eines Ordners angezeigt wird. Sie können der Detailansicht benutzerdefinierte Spalten hinzufügen. |
Kopierhakenhandler | Wird aufgerufen, wenn ein Ordner- oder Druckerobjekt verschoben, kopiert, gelöscht oder umbenannt werden soll. Es ermöglicht Ihnen, den Vorgang zu genehmigen oder ein Veto einzufügen. |
Drag & Drop-Handler | Wird aufgerufen, wenn eine Datei mit der rechten Maustaste gezogen wird. Dadurch können Sie das angezeigte Kontextmenü ändern. |
Symbolüberlagerungshandler | Wird aufgerufen, bevor das Symbol einer Datei angezeigt wird. Sie können eine Überlagerung für das Symbol der Datei angeben. |
Suchhandler | Aufgerufen, um eine Suchmaschine zu starten. Es ermöglicht Ihnen, eine benutzerdefinierte Suchmaschine zu implementieren, auf die über das Startmenü oder windows Explorer zugegriffen werden kann. |
Die Details zum Implementieren bestimmter Erweiterungshandler werden in den oben aufgeführten Abschnitten behandelt. Informationen zu Implementierungsproblemen, die allen Shell-Erweiterungshandlern gemeinsam sind, finden Sie in den folgenden Themen: