Windows 檔案總管會透過登錄機碼項目來管理通訊協定處理常式的搜尋連接器的建立。 透過註冊表,實施者和第三方可以讓新的和舊版協議處理程序參與 Windows 7 搜尋。
本主題的組織方式如下:
關於 Windows 7 中通訊協定處理常式的搜尋連接器
在 Windows 7 中,從 [開始] 功能表或 Windows 檔案總管的搜尋只會包含索引位置中的檔案,以及非檔案系統專案,例如具有搜尋連接器的遠端資料存放區或通訊協定處理常式專案。 除了在 [開始] 功能表和殼層搜尋的範圍內包含通訊協定處理常式項目之外,搜尋連接器可在 [開始] 功能表結果中將通訊協定處理常式項目群組在一起,這樣一來,使用者可以按一下群組標頭,並僅查看通訊協定處理常式的結果。 或者,使用者可以流覽至 搜尋 資料夾,開啟搜尋連結器檔案,然後執行搜尋,只搜尋與該搜尋連結器相關之特定協定處理常式中的項目。
當使用者第一次啟動註冊通訊協定處理常式的應用程式時,Windows 檔案總管會在使用者的 [搜尋 ] 資料夾中產生通訊協定處理常式的搜尋連接器檔案 (.searchConnector-ms) 。 具有通訊協定處理常式的應用程式可以選擇停用此行為,或自訂通訊協定處理常式搜尋連接器的名稱和描述。
備註
使用者的 [搜尋] 資料夾的位置 %userprofile%\Searches 或 FOLDERID_SavedSearches。 FOLDERID_SavedSearches的 GUID 是 {7d1d3a04-debb-4115-95cf-2f29da2920da}。
Windows Explorer 透過下列章節所說明的登錄機碼條目來管理協定處理常式的搜尋連接器的建立:
備註
沒有程式化的方法可以為協定處理程序創建搜尋連接器。 它們必須透過登錄進行設定。
讓通訊協定處理常式參與搜尋
下表概述登錄機碼及其可能的值。 通訊協定處理常式可以填入部分或全部的登錄機碼,其中 <通訊協定> 將被替換為其通訊協定的實際名稱,例如 MAPI、file 或 csc 等。
| 登錄鍵 | 可能的值 | 類型 | 評論 |
|---|---|---|---|
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<通訊協定>\版本 | 不存在 (預設)。 否則為 1 或更大。 | REG_DWORD | 此值可用來偵測已處理之搜尋根目錄的位置範本註冊變更。 如果不存在,則使用 0 作為預設值。 或者,增加版本號以通知 Windows 檔案總管需要重建搜尋連接器,因為安裝了更新版本的通訊協定處理常式。 |
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\DoNotCreateSearchConnectors | 不存在 (預設)。 否則設定為 1。 | REG_DWORD | 如果不存在,請在 Searches 資料夾中建立 .searchconnector-ms 檔案。 如果為 1,則標示為已處理,且不執行任何動作。 |
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<通訊協定>\預設\說明 | 包含搜尋連接器描述的可本地化字串。 | REG_SZ | 選擇性。 它用於 .searchconnector-ms 檔案的 Description 元素。 |
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<通訊協定>\預設\名稱 | 用於命名搜尋連接器的當地語系化字串。 用作 .searchconnector-ms 檔案的名稱。 | REG_SZ | 每個位置都必須有一個唯一的名稱。 如果沒有此值,將會使用通訊協定處理常式的 IShellFolder 介面 所提供的顯示名稱。 |
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\FolderType | 識別要套用至搜尋連接器的 FOLDERTYPEID 的 GUID。 | REG_SZ | 選擇性。 用於 .searchconnector-ms 檔案的 folderType 元素中,以指出應該使用哪些範本來顯示結果。 例如,FOLDERTYPEID_Documents的 GUID 值。 |
停用協定處理程序搜尋連接器的建立
如果您的應用程式透過通訊協定處理常式公開項目以供應用程式本身使用,而且您不想透過殼層公開項目(在開始功能表和 Windows 檔案總管搜尋中),您必須停用為您的通訊協定處理常式創建搜尋連接器。
若要停用搜尋連接器建立,請將 DoNotCreateSearchConnectors 設定為 0x00000001(1),如下列登錄機碼範例所示。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
DoNotCreateSearchConnectors
如果 DoNotCreateSearchConnectors 設定為 1,則建議您在通訊協定處理常式所公開的每個專案上公開 System.Shell.OmitFromView 屬性,並將此屬性的值設定為 TRUE。 這樣做會防止通訊協定處理常式專案出現在 [開始] 功能表 [檔案 ] 群組下。
如果 DoNotCreateSearchConnectors 存在並設定為零,則 Windows 檔案總管會為通訊協定處理常式建立搜尋連接器,而且通訊協定處理常式專案會在 [開始] 功能表和 Windows 檔案總管搜尋中傳回。
自訂通訊協定處理常式搜尋連接器的名稱、描述或資料夾類型 (FolderType)
搜尋連接器名稱不僅用來識別 [搜尋] 資料夾中的搜尋連接器,還用來做為 [開始] 功能表搜尋中結果的群組標頭。 因此,請務必為搜尋連接器提供描述性名稱。 如果登錄機碼中未提供名稱,根據預設,Windows 檔案總管會針對通訊協定處理常式的搜尋根目錄和空白描述,使用 IShellFolder 介面 所提供的名稱。 您可以透過一個登錄機碼項目覆寫預設名稱,而不需要重新命名 IShellFolder 介面。 雖然搜尋連接器名稱的可見度較高,但您也可以透過提供自己的描述來覆蓋搜尋連接器的描述。
若要覆寫預設的名稱或描述,請設定下列登錄例項中的項目。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Default
Name
Description
此外,可以將 FolderType 項目設定為 FOLDERTYPEID GUID 之一。 值應該是實際的 GUID(全域唯一識別碼),而不是其名稱。 例如,{94d6ddcc-4a68-4175-a374-bd584a510b78} 而不是 FOLDERTYPEID_Music。 您可以在 Windows SDK 的 Shlguid.h 標頭檔中取得 FOLDERTYPEID 的 GUID。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Default
FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}
使用登錄字串重新導向
您可以使用 重新導向的字串 來確保您為搜尋連接器提供的名稱可以當地語系化。 您可以包含可本地化的字串,用於名稱和描述的登錄機碼,而不是將實際字串輸入到登錄中。
若要包含 [名稱] 或 [描述] 值的可當地語系化字串,請設定值,如下列登錄機碼範例所示。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows Search
PHSearchConnectors
<protocol>
Name = @dllname.dll,-resourceID
可供當地語系化的字串採用下列格式:
-
@dllname.dll,-resourceID其中:
- @dllname.dll 是包含字串資源之 DLL 的路徑
- resourceID 是字串資源的整數資源識別碼
間接字串的格式,及加上版本修飾符的間接字串,如 SHLoadIndirectString 函式中所述。
還原已刪除的協定操作器搜尋連接器
因為搜尋連接器是使用者電腦上的檔案,所以可能會錯誤地刪除它們。 若要還原所有已刪除的通訊協定處理常式搜尋連接器,請還原預設程式庫。 為此,請打開 Windows 資源管理器,右鍵單擊 Libraries 文件夾,然後選擇 Restore Default Libraries。
其他資源
相關主題