Erstellen eines Suchconnectors für einen Protokollhandler

Windows Der Explorer steuert die Erstellung eines Suchconnectors für einen Protokollhandler über Registrierungsschlüsseleinträge. Über die Registrierung können sowohl Implementierer als auch Drittanbieter neue und ältere Protokollhandler für die Teilnahme an der Windows 7-Suche aktivieren.

Dieses Thema ist wie folgt organisiert:

Informationen zu Suchconnectors für Protokollhandler in Windows 7

In Windows 7 enthalten Suchvorgänge über das Startmenü oder den Windows-Explorer nur Dateien an indizierten Speicherorten und Nichtdateisystemelemente wie Remotedatenspeicher oder Protokollhandlerelemente, die über einen Suchconnector verfügen. Zusätzlich zum Hinzufügen der Protokollhandlerelemente in den Bereich des Startmenüs und der Shellsuche ermöglicht der Suchconnector dem Startmenü, Protokollhandlerelemente in den Ergebnissen des Startmenüs zusammen zu gruppen. Dies hat den Vorteil, dass der Benutzer auf den Gruppenheader klicken und nur die Ergebnisse des Protokollhandlers anzeigen kann. Alternativ kann der Benutzer zum Ordner Suchen navigieren, die Suchconnectordatei öffnen und eine Suche durchführen, die nur Elemente aus dem spezifischen Protokollhandler enthält, der diesem Suchconnector zugeordnet ist.

Wenn ein Benutzer zum ersten Mal eine Anwendung startet, die einen Protokollhandler registriert, generiert Windows Explorer eine Suchconnectordatei (.searchConnector-ms) für den Protokollhandler im Ordner Suchen des Benutzers. Anwendungen mit Protokollhandlern können dieses Verhalten deaktivieren oder den Namen und die Beschreibung des Protokollsuchconnectors anpassen.

Hinweis

Der Speicherort des Ordners Suchen des Benutzers ist %userprofile% \ Searches oder FOLDERID _ SavedSearches. Die GUID für FOLDERID _ SavedSearches ist {7d1d3a04-debb-4115-95cf-2f29da2920da}.

Windows Der Explorer steuert die Erstellung eines Suchconnectors für einen Protokollhandler über Registrierungsschlüsseleinträge, die in den folgenden Abschnitten beschrieben werden:

Hinweis

Es gibt keine programmgesteuerten Mittel zum Erstellen eines Suchconnectors für einen Protokollhandler. Sie müssen über die Registrierung konfiguriert werden.

Registrierungsschlüssel und ihre möglichen Werte sind in der folgenden Tabelle aufgeführt. Ein Protokollhandler kann einige oder alle dieser Registrierungsschlüssel auffüllen, wobei das Protokoll durch den tatsächlichen Namen seines Protokolls ersetzt wird, z. B. MAPI, File oder < > csc.

Registrierungsschlüssel Mögliche Werte Typ Kommentare
HKEY _ LOCAL MACHINE Software Microsoft Windows Search _ \ \ \ \ PHSearchConnectors \ < protocol > \ Version Ist nicht vorhanden (Standard). Andernfalls ist es 1 oder höher. REG _ DWORD Dieser Wert wird verwendet, um Änderungen an den Speicherortvorlagenregistrierungen für Suchsynten zu erkennen, die bereits verarbeitet wurden. Wenn nicht vorhanden ist, verwenden Sie 0 als Standard. Erhöhen Sie alternativ die Version, um Windows Explorer darüber zu informieren, dass der Suchconnector neu generiert werden soll, da eine neuere Version des Protokollhandlers installiert wurde.
HKEY _ LOCAL MACHINE Software Microsoft Windows Search _ \ \ \ \ PHSearchConnectors-Protokoll \ < > \ DoNotCreateSearchConnectors Ist nicht vorhanden (Standard). Andernfalls auf 1 festgelegt. REG _ DWORD Wenn sie nicht vorhanden ist, erstellen Sie im Ordner Suchen eine Searchconnector-ms-Datei. Wenn 1, markieren Sie als verarbeitet, und unternehmen Sie nichts.
HKEY _ LOCAL MACHINE Software Microsoft Windows Search _ \ \ \ \ PHSearchConnectors-Protokoll \ < > \ \ Standardbeschreibung Eine lokalisierbare Zeichenfolge, die die Beschreibung des Suchconnectors enthält. REG _ SZ Optional. Sie wird im Description-Element der Datei .searchconnector-ms verwendet.
HKEY _ LOCAL MACHINE Software Microsoft Windows Search _ \ \ \ \ PHSearchConnectors-Protokoll \ < > \ \ Standardname Eine lokalisierte Zeichenfolge zum Benennen des Suchconnectors. Wird als Name der Datei .searchconnector-ms verwendet. REG _ SZ Jeder Standort muss einen eindeutigen Namen haben. Wenn dieser Wert nicht vorhanden ist, wird der von der IShellFolder-Schnittstelle des Protokollhandlers bereitgestellte Anzeigename verwendet.
HKEY _ LOCAL MACHINE Software Microsoft Windows Search _ \ \ \ \ PHSearchConnectors \ < protocol Default > \ \ FolderType Eine GUID, die die FOLDERTYPEID identifiziert, die auf den Suchconnector angewendet werden soll. REG _ SZ Optional. Wird im folderType-Element der Datei .searchconnector-ms verwendet, um anzugeben, welche Vorlagen zum Anzeigen von Ergebnissen verwendet werden sollen. Beispiel: der GUID-Wert von FOLDERTYPEID _ Documents.

Deaktivieren der Connectorerstellung für die Protokollhandlersuche

Wenn Ihre Anwendung Elemente über einen Protokollhandler für die Verwendung in der Anwendung selbst verfügbar macht und Sie die Elemente nicht über die Shell verfügbar machen möchten (im Startmenü und im Windows Explorer-Suchvorgänge), müssen Sie die Erstellung eines Suchconnectors für Ihren Protokollhandler deaktivieren.

Um die Erstellung des Suchconnectors zu deaktivieren, legen Sie DoNotCreateSearchConnectors auf 0x00000001(1) fest, wie im folgenden Registrierungsschlüsselbeispiel gezeigt.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  DoNotCreateSearchConnectors

Wenn DoNotCreateSearchConnectors auf 1 festgelegt ist, wird empfohlen, dass Sie die System.Shell.OmitFromView-Eigenschaft für jedes Element verfügbar machen, das vom Protokollhandler verfügbar gemacht wird, und den Wert dieser Eigenschaft auf TRUE festlegen. Dadurch wird verhindert, dass die Protokollhandlerelemente unter der Gruppe Dateien im Startmenü angezeigt werden.

Wenn DoNotCreateSearchConnectors vorhanden ist und auf 0 festgelegt ist, erstellt Windows Explorer einen Suchconnector für den Protokollhandler, und die Protokollhandlerelemente werden im Startmenü zurückgegeben und Windows Explorer durchsucht.

Anpassen des Namens, der Beschreibung oder des Ordnertyps für einen Protokollhandler-Suchconnector

Der Name des Suchconnectors wird nicht nur verwendet, um den Suchconnector im Ordner Suchen zu identifizieren, sondern auch als Gruppenheader für die Ergebnisse in Suchvorgängen im Startmenü. Daher ist es wichtig, einen aussagekräftigen Namen für den Suchconnector zu geben. Wenn im Registrierungsschlüssel kein Name angegeben wird, verwendet Windows Explorer standardmäßig den von der IShellFolder-Schnittstelle bereitgestellten Namen für den Suchstamm und die leere Beschreibung des Protokollhandlers. Sie können den Standardnamen über einen Registrierungsschlüsseleintrag überschreiben, ohne die IShellFolder-Schnittstelle umbenennen zu müssen. Obwohl er nicht so sichtbar ist wie der Name des Suchconnectors, können Sie auch die Beschreibung für den Suchconnector überschreiben, indem Sie Eine eigene Beschreibung angeben.

Um den Standardnamen oder die Standardbeschreibung zu überschreiben, legen Sie die Einträge wie im folgenden Registrierungsbeispiel gezeigt fest.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     Name
                     Description

Darüber hinaus kann der FolderType-Eintrag auf eine der FOLDERTYPEID-GUIDs festgelegt werden. Der Wert sollte die tatsächliche GUID und nicht ihr Name sein. Beispiel: {94d6ddcc-4a68-4175-a374-bd584a510b78} anstelle von FOLDERTYPEID _ Musik. Die GUID für eine FOLDERTYPEID kann in der Headerdatei Shlguid.h im Windows SDK Windows werden.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}

Verwenden der Umleitung von Registrierungszeichenfolgen

Sie können eine umgeleitete Zeichenfolge verwenden, um sicherzustellen, dass der Name, den Sie für den Suchconnector angeben, lokalisiert werden kann. Sie können lokalisierbare Zeichenfolgen für den Registrierungsschlüssel name und description angeben, anstatt die tatsächliche Zeichenfolge in die Registrierung eingibt.

Wenn Sie eine lokalisierbare Zeichenfolge für die Werte Name oder Beschreibung angeben, legen Sie den Wert wie im folgenden Registrierungsschlüsselbeispiel gezeigt fest.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Name = @dllname.dll,-resourceID

Die lokalisierbare Zeichenfolge hat das folgende Format:

  • @dllname.dll,-resourceID, wobei:
    • @dllname.dll ist der Pfad zu der DLL, die die Zeichenfolgenressource enthält.
    • resourceID ist die ganzzahlige Ressourcen-ID der Zeichenfolgenressource.

Das Format für eine indirekte Zeichenfolge und eine indirekte Zeichenfolge, die mit einem Versionsmodifizierer angefügt wird, wird unter SHLoadIndirectString-Funktion beschrieben.

Wiederherstellen eines Connectors für die Suche nach gelöschten Protokollhandlern

Da es sich bei Suchconnectors um Dateien auf dem Computer des Benutzers handelt, können sie fälschlicherweise gelöscht werden. Stellen Sie die Standardbibliotheken wieder zur Wiederherstellung aller gelöschten Protokollhandler-Suchconnectors wieder zur Verfügung. Öffnen Sie dazu den Windows Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Bibliotheken, und wählen Sie dann Standardbibliotheken wiederherstellen aus.

Screenshot: Menüoption "Standardbibliotheken wiederherstellen"

Weitere Ressourcen

Konzept

Grundlegendes zu Protokollhandlern

Entwickeln von Protokollhandlern

Benachrichtigen des Änderungsindexes

Hinzufügen von Symbolen und Kontextmenüs

Codebeispiel: Shellerweiterungen für Protokollhandler

Installieren und Registrieren von Protokollhandlern

Debuggen von Protokollhandlern