Modifizieren des Windows-Datei-Explorers mithilfe von Shell-Erweiterungen

  • Shell-Erweiterungen ermöglichen eine tiefgreifende Anpassung des Explorers, die über die Möglichkeiten der Registry hinausgeht.
  • Windows bietet mehrere Steuerungsmöglichkeiten (Kontextmenü, Symbole, Miniaturansichten, Metadaten und Namensraum), um das Verhalten für jede Datei individuell anzupassen.
  • In Windows 11 können Sie den Explorer bereinigen und beschleunigen, indem Sie Registrierungsschlüssel für Menüs, den linken Bereich und Ordnervorlagen ändern.
  • Moderne, mit MSIX verpackte Anwendungen integrieren Kontextmenüs und COM-Server über im Manifest deklarierte Erweiterungen.

Windows-Datei-Explorer anpassen

Wenn Sie zu denjenigen gehören, die sich über Menüs mit ungenutzten Optionen, schlecht implementierte Integrationen oder langsame Ordneröffnungszeiten ärgern, dann ist dies genau das Richtige für Sie., dann sind Sie hier richtig.

Unter Windows können Sie das Verhalten des Explorers und des Kontextmenüs auf verschiedene Weise ändern (einschließlich Tricks für den Datei-Explorer in Windows 11): über die Registry, mit klassischen Shell-Erweiterungen in Form von DLLs, mit modernen MSIX-Paketen und sogar durch die Entwicklung eigener Erweiterungen in .NET oder C++. Lassen Sie uns all diese Möglichkeiten in Ruhe und ohne Umschweife erkunden.

Was sind Shell-Erweiterungen und warum reicht die Registry nicht aus?

Die Windows-Shell kann auf grundlegende Weise über Registry-Einträge und .ini-Dateien erweitert werden.Diese Vorgehensweise ist einfach und in der Regel ausreichend, um Symbole nach Dateityp anzupassen, zusätzliche Befehle hinzuzufügen oder Dateierweiterungen zuzuordnen. Sie hat jedoch eine wesentliche Einschränkung: Alle Definitionen gelten für den Dateityp, nicht für einzelne Dateien.

Ein typisches Beispiel sind benutzerdefinierte Symbole per Erweiterung.Wenn Sie in der Registrierung ein Symbol für die .docx-Datei zuweisen, todas Kopien dieses Dateityps sehen dasselbe Symbol, selbst wenn Sie versuchen, sie zu unterscheiden. Und es gibt Bereiche in der Shell, wie das Eigenschaftenfenster, das erscheint, wenn Sie mit der rechten Maustaste klicken und „Eigenschaften“ auswählen. Ortschaftendie sich schlichtweg nicht allein mit Registry-Schlüsseln ändern lassen.

Um den Explorer wirklich zu kontrollieren, müssen Sie noch einen Schritt weiter gehen und Shell-Erweiterungshandler verwenden.Hierbei handelt es sich um COM-Komponenten (in der Regel DLLs), die die Shell jedes Mal aufruft, wenn sie eine bestimmte Aktion ausführt: Anzeigen eines Symbols, Öffnen des Kontextmenüs, Rendern einer Miniaturansicht, Anzeigen eines Tooltips usw. Der Explorer fragt den Treiber kurz vor der Ausführung der Operation ab und gibt ihm so die Möglichkeit, das Ergebnis zu ändern.

Ein sehr häufiges Beispiel ist der Kontextmenü-Controller.Wenn Sie eine solche Komponente für einen Dateityp erstellen, ruft Windows sie jedes Mal auf, wenn Sie mit der rechten Maustaste auf eine Datei dieses Typs klicken. Diese Komponente kann je nach Dateityp, Anzahl der ausgewählten Elemente, Pfad usw. unterschiedliche Menüpunkte hinzufügen – etwas, das mit einer einfachen Befehlszuordnung in der Registrierung nicht möglich wäre.

Innerhalb dieser Controller-Familie gibt es zwei HauptgruppenDies sind die Befehle, die an bestimmte Dateitypen gebunden sind (und „pro Datei“ ausgeführt werden) und solche, die allgemeine Shell-Operationen ausführen (ohne von einer bestimmten Dateierweiterung abhängig zu sein). Eine detaillierte Betrachtung hilft, ihre Grenzen zu verstehen.

Shell-Erweiterungen in Windows

Hauptsteuerungen, die mit Dateitypen verknüpft sind

Dateitypbasierte Handler ermöglichen es Ihnen, das Verhalten des Explorers für bestimmte Dateierweiterungen anzupassen.Sie funktionieren auf der Ebene der einzelnen Dateien, sodass Sie Menüs, Symbole oder Eigenschaften je nach Element anpassen können.

  • Kontextmenü-Controller. Es wird unmittelbar vor dem Anzeigen des Kontextmenüs einer Datei ausgeführt. Es ermöglicht Ihnen, zusätzliche Befehle hinzuzufügen, Elemente neu anzuordnen und Optionen nur für bestimmte Dateien oder Situationen anzuzeigen (z. B. wenn mehrere Dateien ausgewählt sind, wenn es sich um einen speziellen Ordner handelt usw.).
  • Datenverarbeiter. Es kommt bei Drag-and-Drop-Operationen mit Shell-Objekten zum Einsatz. Es kann dazu beitragen Zusätzliche Zwischenablageformate damit das Ziel über mehr Informationen verfügt (zum Beispiel eine alternative Darstellung im XML- oder Binärformat).
  • Drop Handler. Dieser Befehl wird aufgerufen, wenn Sie Daten per Drag & Drop in eine bestimmte Datei ziehen. Er ermöglicht es, eine Datei als Ziel für eine Drag-and-Drop-Operation festzulegen, beispielsweise das Ablegen mehrerer Dateien in einer ZIP-Datei oder einer Datenbank.
  • Symbolhandler. Diese Funktion wird aufgerufen, bevor die Shell ein Dateisymbol anzeigt. Sie ermöglicht es, das Standardsymbol eines Dateityps durch ein individuell generiertes Symbol für jede Datei zu ersetzen. Dies ist besonders nützlich für Elemente wie Bilder, Projektdokumente, Synchronisierungsstatus usw. Hierfür empfiehlt es sich, die Dokumentation zu lesen. die besten Erweiterungen für Explorer.
  • Eigenschaftenblatt-Controller. Es wird aktiviert, wenn Sie im Begriff sind, das Dialogfeld anzuzeigen. Ortschaften eines Objekts. Sie können es verwenden, um zusätzliche Registerkarten hinzuzufügen oder einige der vorhandenen zu ersetzen, sodass Ihre Anwendung ihre Einstellungen direkt auf der Registerkarte "Eigenschaften" der Datei anzeigt.
  • Thumbnail-Handler. Es erzeugt das Bild, das Sie in der Explorer-Miniaturansicht sehen. Dadurch kann eine Videodatei ein repräsentatives Einzelbild oder ein ungewöhnliches Bildformat in der Vorschau anzeigen, ohne dass externe Anwendungen erforderlich sind.
  • InfoTip-Handler. Dies dient zur Generierung des Tooltips, der beim Überfahren einer Datei mit der Maus erscheint. Hier können Sie relevante Metadaten anzeigen: Audiodauer, Fotoauflösung, Dokumentstatus usw.
  • Metadaten-Controller. Es ermöglicht Lese- und Schreibzugriff auf die in einer Datei gespeicherten Eigenschaften. Dank ihm können Sie die Ansicht erweitern. Details, Tooltip-Informationen, Gruppierungen und zusätzliche Spalten mit benutzerdefinierten Metadaten.

Andere Shell-Treiber, die nicht an einen Dateityp gebunden sind

Zusätzlich zu Treibern, die von einem Dateityp abhängenEs gibt weitere Funktionen, die die Shell vor bestimmten allgemeinen Explorer-Operationen aufruft. Diese ermöglichen weitergehende Anpassungen.

  • Spaltensteuerung. Die Ansicht wird vor der Anzeige geprüft. Details aus einem Ordner. Es dient zum Hinzufügen benutzerdefinierter Spalten (z. B. „Bewertung“, „Interner Autor“, „Validierungsstatus“), die mit von Ihrer Erweiterung berechneten Informationen gefüllt werden.
  • Kopier-Hook-Handler. Dieser Befehl wird aufgerufen, wenn das System einen Ordner oder Drucker verschieben, kopieren, löschen oder umbenennen möchte. Er ermöglicht es Ihnen, diesen Vorgang zu genehmigen oder zu blockieren, was insbesondere bei Sicherheitslösungen, Unternehmensrichtlinien oder überwachten Ordnern sehr nützlich ist.
  • Kontextbezogener Drag & Drop-Handler. Dies geschieht, wenn Sie eine Datei mit der rechten Maustaste ziehen. Sie können das Kontextmenü, das beim Loslassen der Maustaste erscheint, anpassen und spezielle Aktionen wie „Konvertieren und Verschieben“, „Original hochladen und löschen“ usw. hinzufügen.
  • Symbolüberlagerungs-Handler. Fügen Sie einem Datei- oder Ordnersymbol eine kleine Markierung hinzu (z. B. ein grünes Häkchen für synchronisierte Dateien oder ein Ausrufezeichen). Die Shell ruft diese Funktion kurz vor dem Zeichnen des Symbols auf, und Ihr Code entscheidet, welche Markierung angewendet wird.
  • Controller durchsuchen. Es dient zum Starten benutzerdefinierter Suchmaschinen, die in die Shell integriert sind. Damit können Sie Ihre eigene Suchmaschine einbinden, die über das Menü zugänglich ist. Startseite oder über den Explorer, der mit entfernten Daten oder nicht standardisierten Strukturen arbeitet.

Kontextmenü- und Explorer-Erweiterungen

Namensraumerweiterungen: Virtuelle Ordner im Explorer

Der Windows Explorer lehrt nicht nur das traditionelle Dateisystem.Es bildet einen vollständigen „Namensraum“ ab, der virtuelle Ordner wie den Papierkorb, Bibliotheken oder Drucker umfasst. Mit einer Namensraumerweiterung können Sie beliebige Datenbereiche einschließen und sie wie normale Ordner darstellen.

Wenn Sie eine Namespace-Erweiterung erstellen, zeigt der Explorer Ihre Daten als Hierarchie von Ordnern und Dateien an.Auch wenn sie sich tatsächlich in einer Datenbank, auf einem entfernten Gerät befinden oder einfach nur logische Verknüpfungen sind (wie bei Druckern), verhalten sie sich für den Benutzer wie jeder andere Ordner: Sie können kopiert, verschoben, gelöscht, Eigenschaften angezeigt und sogar Suchvorgänge durchgeführt werden.

Technisch gesehen wird jeder im Explorer sichtbare Ordner durch ein COM-Objekt namens „Ordnerobjekt“ repräsentiert.Wenn der Benutzer mit diesem Ordner oder dessen Inhalt interagiert, kommuniziert die Shell über Standardschnittstellen wie beispielsweise mit diesem Objekt. IShellFolderDas Objekt reagiert auf Anfragen (Listenelemente, Rückgabesymbole, Namen, Attribute usw.) und die Shell aktualisiert die grafische Benutzeroberfläche.

Dieses Modell ist besonders nützlich, wenn Ihre Daten nicht gut in die Standarddatei- und Ordnerstruktur passen.Stellen Sie sich eine Datenbank, in der Sie navigieren möchten, so vor, als wären es Ordner, der Inhalt einer Digitalkamera ohne Windows-Dateisystem oder eine Sammlung rein logischer Objekte (zum Beispiel Druckaufträge in einer Warteschlange).

Eine Namensraumerweiterung lässt sich grob in zwei Teile unterteilen.Ein Datenmanager (der festlegt, wie und wo Sie Informationen gemäß Ihren Präferenzen speichern) und eine Schnittstellenschicht mit dem Explorer, die diese Daten als Ordner und Dateien verpackt. Diese zweite Komponente implementiert die COM-Schnittstellen, sodass DefView (die Standardordneransicht) und die übrige Shell wissen, wie die Inhalte angezeigt und bearbeitet werden.

Wie Explorer-Ansichten mit einer Erweiterung interagieren

Das Explorer-Fenster besteht aus mehreren Bereichen: Baumansicht, Ordneransicht, Menü- und Symbolleisten sowie Statusleiste.Wenn Sie einen Ordner betreten, der von Ihrer Namespace-Erweiterung verwaltet wird, kann Ihr Code alle diese Ordner beeinflussen, wenn auch in unterschiedlichem Maße.

Die Baumansicht zeigt einen Überblick über die Hierarchie.Es enthält ein TreeView-Steuerelement, das jeden Ordner im Namespace und seine Position anzeigt. Von hier aus kann der Benutzer Ebenen erweitern, Ordner verschieben, das Kontextmenü verwenden oder Unterordner öffnen. Der Explorer kommuniziert primär über IShellFolder, Anfordern von Attributen, Auflisten von Unterordnern, Anfordern von Anzeigenamen und Symbolen.

Die Ordneransicht (das rechte Bedienfeld mit den Dateien) ist noch flexibler.Im Gegensatz zur Baumansicht steuert der Explorer seine Inhalte nicht direkt; er erstellt lediglich ein untergeordnetes Fenster und übergibt dieses an Ihr Ordnerobjekt. Dieses Fenster kann eine klassische ListView, ein Webbrowser-Steuerelement mit dynamischem HTML oder alles andere enthalten, was für Ihre Daten sinnvoll ist.

Üblicherweise wird DefView mithilfe der Funktion SHCreateShellFolderView wiederverwendet.Dies bietet Ihnen die Standardansicht mit Symbolen, Details, Sortierung, Gruppierungen usw. und ermöglicht es Ihnen, sich auf die Bereitstellung der Daten zu konzentrieren. Sollten Sie jedoch eine sehr spezifische Darstellung benötigen, können Sie eine vollständig benutzerdefinierte Ansicht erstellen.

Das Menü und die Symbolleisten des Explorers können über Ihre Erweiterung angepasst werden.Die Shell stellt die Schnittstelle bereit. IShellBrowserDies ermöglicht es Ihnen, Schaltflächen und Menüpunkte hinzuzufügen oder zu entfernen sowie auf bestimmte Befehle zu reagieren. Wenn der Benutzer auf eine benutzerdefinierte Schaltfläche klickt, leitet der Explorer die entsprechende Nachricht weiter. WM_COMMAND um Ihr Fenster zu öffnen, damit Sie die Aktion verarbeiten können.

Die Statusleiste ist ein weiterer sehr nützlicher KanalAus demselben IShellBrowser Sie können den Text aktualisieren, um Kontextinformationen über das ausgewählte Objekt, die Anzahl der Elemente, Fehler in Ihrer Erweiterung usw. anzuzeigen und so das Gefühl der Integration in das System zu verbessern.

Erstellen Sie Browsererweiterungen mithilfe einer .NET-Klassenbibliothek.

Bei der Entwicklung in .NET besteht die Möglichkeit, eine Bibliothek mit Basisklassen zu verwenden, um die Erstellung vieler dieser Erweiterungen zu vereinfachen.Die Idee ist ganz einfach: Man erstellt ein Klassenbibliotheksprojekt, fügt eine COM-Klasse hinzu und lässt diese von der Basisklasse erben, die dem Typ der Erweiterung entspricht, die man implementieren möchte.

BrowserHelperObjectBase vereinfacht beispielsweise die Erstellung von Browserhilfsobjekten für Internet Explorer.Sie ordnen Browsermethoden, -ereignisse und -eigenschaften Ihrem Code zu. Sie stellen Dinge wie die IE-Instanz (Eigenschaft) bereit. Internet Explorer), das Fenster, in dem das Objekt ausgeführt wird (Siteund Sie kümmern sich um Ereignisse wie OnConnection u Bei Verbindungsabbruch.

ContextMenuHandlerBase vereinfacht die Erstellung von Kontextmenüs für den Explorer.Sie müssen lediglich die Sammlung vervollständigen. Menüpunkte mit MenuItem-Objekten, wie Sie es in einem Windows Forms-Formular tun würden, und sich in das Ereignis einklinken. Klicke von jeder Option. Die Immobilie Mappen Es zeigt Ihnen die Liste der ausgewählten Dateien und die Methode an. OnMenuSelected Es dient dazu, den Hilfetext in der Statusleiste zu aktualisieren.

Mit DropHandlerBase implementieren Sie Drag-&-Drop-Handler, die einer Datei zugeordnet sind.Sie verfügen über Eigenschaften wie zum Beispiel Dateiname (das Ziel, auf dem Dateien abgelegt werden) und Mappen (die gezogenen) und von Methoden wie OnDragEnter, OnDragOver, OnDragLeave y Beim Ziehen auf jede Phase des Widerstands zu reagieren.

IconHandlerBase ermöglicht es Ihnen, das Symbol zurückzugeben, das der Explorer anzeigen soll. für jede Datei. Von OnGetIconLocation Sie entscheiden, wo sich das Symbol befindet und in OnExtractIcon Sie geben die spezifischen Symbolhandler zurück, mit denen Sie Miniaturansichten oder erweiterte Darstellungen generieren können.

Die Registrierung dieser .NET-Erweiterungen erfolgt über COM mithilfe von regasm.exe.Die Basisklassen enthalten Methoden, die mit einem ComRegisterFunction y ComUnregisterFunction Diese Klassen sind dafür zuständig, beim Registrieren der Assembly die entsprechenden Registrierungseinträge zu erstellen oder zu löschen. Darüber hinaus unterstützen viele dieser Klassen das Attribut. Dateitypenerweiterungen um anzugeben, welche Dateitypen betroffen sind (dies kann eine durch Kommas getrennte Liste oder das Platzhalterzeichen * für alle sein).

Ersetzen oder modifizieren Sie die Shell (explorer.exe) auf Systemebene.

Eine weitere Möglichkeit, die Windows-Umgebung radikal zu verändern, besteht darin, die Standard-Shell zu ändern.Das heißt, das Programm, das beim Anmelden startet. Auf Systemen mit speziellem Verwendungszweck (Kioske, Industriegeräte, Terminals) ist es manchmal erwünscht, dass nicht der Explorer, sondern eine einzelne Vollbildanwendung ausgeführt wird; falls Sie andere Optionen benötigen, siehe Alternativen zum Windows Explorer.

In Windows Server- und Clientumgebungen wird dieses Verhalten über die Registrierung gesteuert., in der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ShellIndem Sie den Wert durch den Pfad zu Ihrer ausführbaren Datei ersetzen, stellen Sie sicher, dass beim Anmelden Ihr Programm anstelle des klassischen Explorers geladen wird.

Hier ist Vorsicht geboten.Das Deaktivieren von explorer.exe als Hauptprozess führt dazu, dass dem Endbenutzer weder Desktop, Taskleiste noch Ordnerfenster angezeigt werden. Daher eignet sich diese Option am besten für geschlossene Systeme. Zusätzlich ist es ratsam, stets eine alternative Methode zur Administration und Wiederherstellung bereitzuhalten (z. B. Remote Desktop, abgesicherter Modus, Gruppenrichtlinienobjekte).

Windows 11-Datei-Explorer über die Registrierung anpassen

Abgesehen von COM-Erweiterungen möchten viele Benutzer einfach nur störende Optionen aus dem Kontextmenü entfernen oder das klassische Verhalten wiederherstellen.In Windows 11 haben die Neugestaltung des Kontextmenüs und die Integration von Funktionen wie Copilot viel Kritik hervorgerufen, insbesondere bei fortgeschrittenen Benutzern.

Das Erste, was man sich vor Augen halten sollte, ist, dass das Herumexperimentieren mit der Registry kein Spaß ist.Eine fehlerhafte Änderung kann das System destabilisieren. Erstellen Sie daher zuerst einen Wiederherstellungspunkt oder eine Sicherungskopie der Registrierung. Und achten Sie natürlich darauf, die Pfade exakt wie angegeben zu kopieren.

Um den Registrierungseditor zu öffnen, geben Sie einfach "regedit" im Startmenü ein. und wirf das RegistierungseditorVon dort aus können Sie durch jeden Zweig navigieren, den wir erwähnen werden, und bei Bedarf Schlüssel, Zeichenkettenwerte oder DWORDs erstellen.

„Copilot fragen“ und andere Einträge aus dem Kontextmenü entfernen

Wenn Sie die Copilot-App oder -Integration unter Windows 11 installiert habenWenn Sie mit der rechten Maustaste auf eine Datei klicken, wird Ihnen wahrscheinlich die Option angezeigt. „Fragen Sie den Copiloten“Dieser Eintrag nimmt Platz im Menü ein und ist, wenn man die Funktion nicht nutzt, einfach nur im Weg.

Um es in der Registrierung zu deaktivieren, navigieren Sie zu HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell ExtensionsErstellen Sie innerhalb dieses Zweigs einen neuen Schlüssel namens GesperrtSobald Sie sich im Inneren befinden, fügen Sie ein neues hinzu. Wertschöpfungskette wessen Name sein wird {CB3B0003-8088-4EDE-8769-8B354AB2FF8C} und lassen Sie den Inhalt leer.

Derselbe Trick funktioniert auch, um andere Optionen wie „Mit Notepad bearbeiten“, Paint oder Clipchamp zu löschen.Arbeitet stets unter der Leitung der Niederlassung HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions und innerhalb des Schlüssels GesperrtSie können verschiedene Zeichenfolgenwerte erstellen:

  • {CA6CC9F1-867A-481E-951E-A28C5E4F01EA} zum Verstecken „Mit Notepad bearbeiten“.
  • {8BCF599D-B158-450F-B4C2-430932F2AF2F} die Option entfernen Clipchamp.
  • {2430F218-B743-4FD6-97BF-5C76541B4AE9} die Integration entfernen Lackierung.

Sobald diese Werte erstellt wurden, starten Sie den Explorer oder Ihren Computer neu, damit Windows die Einstellungen neu lädt.Um eine dieser Einstellungen rückgängig zu machen, löschen Sie einfach den entsprechenden Wert oder den gesamten Schlüssel. Gesperrt wenn Sie alle Tickets wiederherstellen möchten.

Bringen Sie das klassische Windows 10-Kontextmenü zurück

Eine der meistdiskutierten Neuerungen in Windows 11 ist das neue, vereinfachte Kontextmenü.Es ist nicht so, dass es an sich "schlecht" wäre, aber viele langjährige Benutzer vermissen das vollständige Windows 10-Menü, bei dem alle Optionen sichtbar sind, ohne dass man auf "Weitere Optionen anzeigen" klicken muss.

Um zum klassischen Stil zurückzukehren, können Sie eine weitere kleine Änderung in der Registry vornehmen.. Gehe zu HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID (Hinweis: Nicht mit dem .cls-Branch verwechseln!) und einen neuen Schlüssel mit dem Namen erstellen {86ca1aa0-34aa-4e8b-a509-50c905bae2a2}.

Fügen Sie innerhalb dieses neu erstellten Schlüssels einen weiteren Schlüssel namens InprocServer32 hinzu.Doppelklicken Sie im rechten Bereich auf den Wert. (Vorbestimmt) Stellen Sie außerdem sicher, dass das Datenfeld vollständig leer ist. Übernehmen Sie die Änderungen und schließen Sie den Editor.

Nach dem Neustart Ihres PCs wird durch einen Rechtsklick auf Dateien oder Ordner das Kontextmenü angezeigt, genau wie unter Windows 10.Alle gewohnten Optionen stehen Ihnen sofort zur Verfügung. Wenn Sie zum ursprünglichen Verhalten von Windows 11 zurückkehren möchten, löschen Sie einfach diesen CLSID-Schlüssel (und seinen Unterschlüssel InprocServer32).

Verbessern Sie die Leistung des Explorers durch Anpassen der Ordneransicht.

Der Datei-Explorer kann ziemlich langsam werden, wenn Windows versucht, bestimmte Ordnervorlagen auf jeden Pfad anzuwenden. (zum Beispiel „Bilder“, „Videos“, „Dokumente“ usw.) und muss den Inhalt analysieren, um die passende Ansicht auszuwählen. Dies macht sich besonders auf Computern mit vielen Dateien oder mechanischen Festplatten bemerkbar.

Ein Trick, um die Navigation zu beschleunigen, besteht darin, dem System mitzuteilen, dass alle Ordner als generisch behandelt werden sollen.damit die Analyse direkter erfolgt. Dies wird im Schlüssel erreicht. HKEY_CURRENT_USER\Software\Classes\Lokale Einstellungen\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell.

Erstellen Sie innerhalb dieses Schlüssels einen Zeichenfolgenwert namens FolderType. und weist als Inhalt zu UnbestimmtSpeichern Sie die Änderungen und starten Sie Ihren Computer neu oder melden Sie sich ab und wieder an.

Wenn Sie den Explorer erneut öffnen, werden Sie feststellen, dass das Wechseln zwischen Ordnern reibungsloser funktioniert.Insbesondere wenn Sie häufig mit Dateien arbeiten, die Tausende von Dateien oder eine Vielzahl von Dateitypen enthalten. Es ist keine Zauberei, aber es hilft, hier und da Sekunden einzusparen. Diese Einstellung ist besonders nützlich, wenn Explorer ist langsam.

Integration des Explorers mit MSIX-Paketanwendungen

Bisher haben wir hauptsächlich über Erweiterungen gesprochen, die direkt im Register eingetragen sind.Dies ist die klassische Vorgehensweise von MSI- oder ClickOnce-Installationsprogrammen. Diese Technologien erstellen Schlüssel in verschiedenen Zweigen der Registrierung, um Kontextmenüs, Dateizuordnungen usw. zu registrieren.

Bei MSIX-Paketanwendungen ändert sich das Bild.Die Registry ist für die App virtualisiert, und Sie können sich nicht mehr darauf verlassen, dass sie Explorer-Erweiterungen registriert. Stattdessen müssen Sie die Paketerweiterungen definiert im Paketmanifest (Package.appxmanifest), wo Sie Dateitypzuordnungen, Kontextmenüverben und COM-Server deklarieren.

Die einfachste Möglichkeit zur Integration mit dem Explorer unter MSIX ist die Verwendung der Erweiterung windows.fileTypeAssociation.Sie legen fest, welche Dateitypen Sie unterstützen (z. B. .foo), welche Parameter Ihre ausführbare Datei empfängt, wenn der Benutzer eine dieser Dateien öffnet, und welche zusätzlichen Verben im Kontextmenü erscheinen (z. B. „Dateigröße ändern“).

Das Element FileTypeAssociation definiert den logischen Namen der Assoziation und die von ihr unterstützten Typen.In seiner Eigenschaft Kenngrößen Es dauert normalerweise mindestens %1Dies stellt den Pfad zur ausgewählten Datei dar. Innerhalb des Elements Unterstützte Dateitypen Listen Sie die spezifischen Erweiterungen auf (.foo, .bar usw.), und Unterstützte Verben Es enthält die Verben, die mit ihren jeweiligen Parametern dem Kontextmenü hinzugefügt werden.

Dieses Modell weist zwei wichtige Einschränkungen auf.Sie können nur Verben für Dateitypen anzeigen, die Ihrer App bereits zugeordnet sind, und diese werden nur angezeigt, wenn Ihre App als Standard für diesen Typ festgelegt ist. Außerdem kann das Verb nur die Haupt-EXE-Datei der App starten (wenn auch mit anderen Parametern), nicht eine beliebige andere EXE-Datei.

Erweiterte Shell-COM-Erweiterungen in MSIX-Paketen

Wenn Sie noch weiter gehen möchten (generische Ordner steuern, andere Aufgaben starten oder die Hauptanwendung nicht jedes Mal öffnen möchten),Alternativ kann man eine klassische Shell-COM-Erweiterung (DLL) erstellen und diese im MSIX-Manifest registrieren, anstatt die Systemregistrierung zu verwenden.

Eine Shell-COM-Erweiterung ist im Grunde eine DLL, die eine oder mehrere COM-Klassen mit einer eindeutigen CLSID bereitstellt.Windows lädt diese DLL, wenn der Explorer das Kontextmenü, Symbole, Miniaturansichten usw. anzeigen muss, und ruft Methoden wie die folgenden auf: Titel abrufen, GetIcon, Tooltip abrufen o aufrufen (im Falle von Menübefehlen).

Die typische Implementierung erfolgt aus Gründen der Performance und des Speicherverbrauchs in C++.Ein klassisches Beispiel ist ein Projekt ähnlich wie „ExplorerCommandVerb“, bei dem die Klasse CExplorerCommandVerb Der Menübefehl ist implementiert. Die Methode aufrufen Es handelt sich um den Prozess, der ausgeführt wird, wenn der Benutzer auf Ihren Eintrag im Kontextmenü klickt, und von dort aus können Sie praktisch alles tun, was Sie möchten: Dialogfelder anzeigen, andere Prozesse starten, mehrere Elemente verarbeiten usw.

Um den COM-Server in einem MSIX-Paket zu registrieren, verwendet man den Namespace „com“ im Manifest.Am Knoten com:Extension Category=»windows.comServer» Sie deklarieren den COM-Server, den Servertyp (zum Beispiel, SurrogateServer) und innerhalb eines Elements com:Klasse wo Sie die Id (Ihre CLSID) und die Path (die DLL, die die Implementierung enthält).

Die Integration mit dem Datei-Explorer erfolgt später mithilfe der Erweiterung windows.fileExplorerContextMenus., innerhalb eines Knotens deklariert Desktop4:ErweiterungEs definiert ein oder mehrere Desktop5:ItemType (zum Beispiel, Verzeichnis, * oder eine spezifische Erweiterung) und innerhalb von Elementen Desktop5:Verb die auf Ihre CLSID verweisen.

Die DLL-Datei muss in das MSIX-Paket eingebunden und zusammen mit der Anwendung kopiert werden.Wenn Sie ein Windows Application Packaging Project verwenden, ist der einfachste Weg, die DLL dem Projekt hinzuzufügen und festzulegen, dass sie immer in das Ausgabeverzeichnis kopiert wird, oder den Kopiervorgang mit einem Post-Compilation-Ereignis im C++-Projekt zu automatisieren.

Nach der Installation des MSIX-Pakets lädt der Explorer die neue Erweiterung erst nach einem Neustart.Sie können den gesamten Computer neu starten oder den Prozess beenden. explorer.exe Öffnen Sie den Task-Manager und starten Sie den Computer neu. Anschließend erscheint der neue Kontextmenüeintrag an der von Ihnen angegebenen Stelle.

Zusammengenommen ermöglicht das Ökosystem aus Shell-Erweiterungen, Registry-Anpassungen und MSIX-Manifesten, den Datei-Explorer auf ein neues Niveau zu heben.Ob es darum geht, unübersichtliche Menüs aufzuräumen, die Navigation zu beschleunigen, eigene Anwendungen zu integrieren oder sogar komplexe Datenstrukturen in benutzerfreundliche „Ordner“ umzuwandeln – mit etwas Sorgfalt beim Bearbeiten der Registrierung und guter Planung der COM-Erweiterungen können Sie einen Explorer erhalten, der perfekt auf Ihre Bedürfnisse zugeschnitten ist, ohne die Systemstabilität zu beeinträchtigen.

10 Windows-Logo
Verwandte Artikel:
Die besten Datei-Explorer für Windows 10