Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A szűrőkezelőt regisztrálni kell. Egy adott fájlnévkiterjesztéshez meglévő szűrőkezelőt is megkereshet a beállításjegyzéken keresztül, vagy az ILoadFilter felület használatával.
Ez a témakör a következőképpen van rendszerezve:
- Szűrőkezelők regisztrálása a Windows Search
- Meglévő szűrőkezelők cseréje
- Adott fájlkiterjesztés szűrőkezelőjének megkeresése
- További erőforrások
- Kapcsolódó témakörök
Jegyzet
A szűrőkezelő az IFilter felület implementációja.
Szűrők kezelőinek regisztrálása a Windows Search szolgáltatáshoz
Az új protokollkezelő regisztrálásához vagy egy meglévő protokollkezelő megtalálásához szükséges GRAFIKUS GUID-k az alábbi táblázatban találhatók.
| GUID | Felhasználó vagy alkalmazás definiálva | Leírás |
|---|---|---|
| 89BCB740-6119-101A-BCB7-00DD010655AF | Alkalmazás | Az IFilter interfész GUID azonosítója egy beállításkulcs-állandó minden szűrőkezelő számára. |
| {PersistentHandlerGUID} | Felhasználó | Ez a perzisztens kezelő GUID-ja. |
| {FilterHandlerCLSID} | Felhasználó | Ez a szűrőkezelő osztályazonosítója (CLSID). |
| {ApplicationGUID} | Felhasználó | Ez egy köztes (összesített) GUID. |
A szűrőkezelőket az HKEY_LOCAL_MACHINE-be kell regisztrálni, mert a SearchFilterHost.exe a SYSTEM-fiók alatt fut, így nem férhet hozzá a bejelentkezett felhasználó HKEY_CURRENT_USER beállításkulcsaihoz. Ezenkívül a Felhasználók csoportnak olvasási és végrehajtási hozzáféréssel kell rendelkeznie a szűrőkezelőhöz .dll, mert SearchFilterHost.exe eltávolítja az összes rendszergazdai jogosultságot, és csak a nem rendszergazdai jogosultságokat engedélyezi. Mivel az alapértelmezett Visual Studio-projekthely az aktuális felhasználó könyvtárában található, és így nem ad olvasási engedélyeket a Felhasználók csoportnak, át kell helyeznie a .dll, vagy módosítania kell az ACL-eket SearchFilterHost.exe hozzáférés engedélyezéséhez.
Új szűrőkezelő regisztrálásakor azt javasoljuk, hogy használjon leíró nevet, például HTML IFiltert.
Az új szűrőkezelő regisztrálása:
- Adja meg a szűrőkezelőt használó bővítményt és állandó kezelő GUID-azonosítót:
HKEY_LOCAL_MACHINE
Software
Classes
.txt
PersistentHandler
(Default) = {PersistentHandlerGUID}
HKEY_LOCAL_MACHINE
Software
Classes
CLSID
{PersistentHandlerGUID}
PersistentAddinsRegistered
{89BCB740-6119-101A-BCB7-00DD010655AF}l
(Default) = {FilterHandlerCLSID}
- Regisztrálja a szűrőkezelőt a következő kulcsokkal és értékekkel:
HKEY_LOCAL_MACHINE
Software
Classes
CLSID
{FilterHandlerCLSID}
(Default) = {DescriptiveFilterHandlerName}
InprocServer32
(Default) = DLL Install Path
ThreadingModel = Both
Elavult megközelítés a szűrők kezelőinek regisztrálásához
Ez a megközelítés nem ajánlott használathoz. A szűrők regisztrálhatók olyan CLSID-hez, amely egy com-komponensmodell-osztályt és/vagy egy fájlnévkiterjesztést jelöl. Mindkét szűrőt regisztrálhatja, ha egy osztályhoz szűrőkezelőt kell regisztrálnia, és egy másik szűrőkezelőt egy fájlnévkiterjesztéshez az osztályon belül. Vegye figyelembe, hogy a fájlnévkiterjesztéshez regisztrált szűrőkezelő elsőbbséget élvez a CLSID szűrőkezelőivel szemben.
Ezek a bejegyzések szabványos OLE beállításjegyzék-bejegyzések, amelyek a CLSID\{ApplicationGUID} osztály bejegyzését is tartalmazzák,. A DLL-sample.dll a .txt osztályhoz futó objektum viselkedését implementálja. Jegyezze fel a PersistentHandler extra bejegyzést. Ez a bejegyzés azt az osztályt adja meg, amely a mintaosztály állandó objektumai felé irányuló kérelmek közvetítéséért felelős. A PersistentAddinsRegistered bejegyzés a 89BCB740-6119-101A-BCB7-00DD010655AF (IID_IFilter) nevű felületért felelős implementációt azonosítja. A IID_IFilter implementáló osztály szabványos OLE beállításjegyzék-bejegyzésekkel rendelkezik. Az InprocServer32 DLL a standard OLE mechanizmuson keresztül töltődik be.
A Windows Search a szűrőkezelőhöz megadott szálmodellt figyeli meg. Ha a szálmodell mindkettő van beállítva, a szűrőkezelőnek szálbiztosnak kell lennie; ellenkező esetben, ha ez nem szálbiztos, adja meg apartman. Vegye figyelembe, hogy a szűrőkezelőknek mindig biztonságosnak kell lenniük.
Az alábbi példaregisztrációs adatbázis bejegyzései egy osztály- és fájlnévkiterjesztéshez regisztrált szűrőkezelőhöz tartoznak. {PersistentHandlerGUID} és {FilterHandlerCLSID} változóként használják, amely olyan értékeket jelez, amelyeket a szűrőkezelő létrehozójának kell megadnia. Az értékek REG_SZ típusúak.
HKEY_LOCAL_MACHINE
Software
Classes
.txt
(Default) = SampleFile
SampleFile
(Default) = Class for Sample Files
CLSID
(Default) = {ApplicationGUID}
CLSID
{ApplicationGUID}
(Default) = Sample Files
InprocServer32
(Default) = sample.dll
PersistentHandler
(Default) = {PersistentHandlerGUID}
{PersistentHandlerGUID}
(Default) = Sample file persistent handler
PersistentAddinsRegistered
{89BCB740-6119-101A-BCB7-00DD010655AF}l
(Default) = {FilterHandlerCLSID}
{FilterHandlerCLSID}
(Default) = Sample Files
InprocServer32
(Default) = sampfilt.dll
ThreadingModel = Both
Meglévő szűrőkezelők cseréje
Javasoljuk, hogy ne cserélje le a beépített szűrőkezelőket olyan gyakori fájltípusokra, mint a .txt, .doc, .html, .url stb., mert ez nem kívánt hatással lehet más rendszerösszetevőkre. Az e-mail-üzenettörzsek indexelése függ például a .txt, .htmlés .rtf szűrőkezelőktől.
Ha egy meglévő szűrőregisztráció helyett egy fájltípus új szűrőkezelője van telepítve, a telepítőnek mentenie kell az aktuális regisztrációt, és vissza kell állítania, ha az új szűrőkezelőt eltávolítják. Nincs mechanizmus a szűrők összefűzésére. Ezért az új szűrőkezelő felelős a régi szűrő szükséges funkcióinak replikálásáért.
Szűrőkezelő keresése adott fájlkiterjesztéshez
Az ILoadFilter felületével megkereshet egy szűrőkezelőt egy adott fájlnévkiterjesztéshez. Az alábbi példaregisztrációs adatbázis bejegyzései bemutatják, hogyan teheti ezt meg a HTML-fájlok esetében. Ebben a példában a HTML-dokumentumokhoz használt szűrőkezelő a nlhtml.dll. Az értékek REG_SZ típusúak.
Adott fájlnévkiterjesztés szűrőkezelőjének megkeresése:
- Ellenőrizze, hogy a szűrt fájlok típusának bővítménye rendelkezik-e állandó kezelővel a \HKEY_LOCAL_MACHINE\SOFTWARE\Classes.extensionbeállításjegyzék-bejegyzés alatt. Ha igen, hagyja, hogy ez a kulcs legyen {PersistentHandlerGUID}.
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
.htm
PersistentHandler
{PersistentHandlerGUID}
- Ha nincs regisztrálva állandó kezelő a bővítményhez, keresse meg a dokumentumtípushoz társított CLSID azonosítót a \HKEY_LOCAL_MACHINE\SOFTWARE\Classesbeállításjegyzék-bejegyzésben. Legyen ez a kulcs {ApplicationGUID}. Ezután állapítsa meg, hogy egy állandó kezelő regisztrálva van-e a CLSID-ben: az {ApplicationGUID} használatával keresse meg a \HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{ApplicationGUID} bejegyzés állandó kezelőjének helyét. Legyen ez a kulcs {PersistentHandlerGUID}.
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
htmlfile
(Default) = Class for WWW HTML files
CLSID
(Default) = {25336920-03F9-11CF-8FD0-00AA00686F13}
CLSID
{25336920-03F9-11CF-8FD0-00AA00686F13}
PersistentHandler
(Default) = {PersistentHandlerGUID}
- Határozza meg az állandó kezelő GUID-azonosítóját: a {PersistentHandlerGUID} használatával keresse meg a dokumentumtípus állandó kezelőjének GUID-azonosítóját. A HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{PersistentHandlerGUID}\PersistentAddinsRegistered\ 89BCB740-6119-101A-BCB7-00DD010655AF beállításjegyzék-bejegyzés értéke megadja az állandó kezelő GUID azonosítót ehhez a dokumentumtípushoz. Legyen ez a kulcs {FilterHandlerCLSID}.
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
{PersistentHandlerGUID}
(Default) = HTML File Persistent Handler<dl>
REG_SZ {89BCB740-6119-101A-BCB7-00DD010655AF}
REG_SZ (Default) = {EEC97550-47A9-11CF-B952-00AA0051FE20}
- Határozza meg a szűrőkezelőt: az előző lépésben meghatározott {FilterHandlerCLSID} használatával keresse meg a szűrőkezelőt a \HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FilterHandlerCLSID}\InprocServer32bejegyzés alatt. Ebben a példában a leíró szűrőkezelő neve HTML IFilter.
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
CLSID
{EEC97550-47A9-11CF-B952-00AA0051FE20}
(Default) = HTML IFilter
Data type REG_SZ
InprocServer32
nlhtml.dll
További erőforrások
- Az GitHubIFilterSample kódmintája bemutatja, hogyan hozhat létre IFilter alaposztályt az IFilter felület implementálásához.
- Az indexelési folyamat áttekintését az Az indexelési folyamatcímű cikkben tekintheti meg.
- A fájltípusok áttekintését a fájltípusokcímű témakörben talál.
- A fájltípus fájltársítási attribútumainak lekérdezéséhez lásd: PerceivedTypes, SystemFileAssociations és alkalmazásregisztráció.
Kapcsolódó témakörök
A Windows Search szűrőkezelőiről
Ajánlott eljárások a szűrőkezelők létrehozásához a Windows Keresésben
Tulajdonságok visszaadása egy szűrőkezelőből
A Windows részeként érkező szűrőkezelők