Bagikan melalui


Membuat Penangan Pencarian

[Fitur ini hanya didukung di bawah Windows XP atau yang lebih lama. Gunakan Windows Search sebagai gantinya.]

Shell mendukung beberapa utilitas pencarian yang memungkinkan pengguna menemukan objek namespace seperti file atau printer. Anda dapat membuat mesin pencari kustom dan membuatnya tersedia untuk pengguna dengan menerapkan dan mendaftarkan penangan pencarian.

Prosedur umum untuk menerapkan dan mendaftarkan handler ekstensi Shell dibahas dalam Membuat Penangan Ekstensi Shell. Dokumen ini berfokus pada aspek implementasi yang khusus untuk penangan pencarian.

Cara Kerja Penangan Pencarian

Pengguna memiliki dua cara untuk memilih mesin pencari. Cara pertama adalah dari menu Mulai. Dengan sistem yang lebih lama dari Windows 2000, memilih perintah Temukan pada menu Mulai menampilkan submenu mesin pencari yang tersedia. Dengan Windows 2000 dan yang lebih baru, perintah Temukan menu Start diganti namanya menjadi Cari. Ilustrasi berikut menunjukkan tombol Pencarian pada sistem Windows XP.

the start menu's search submenu

Pengguna juga dapat meluncurkan pencarian dari Windows Explorer. Pada sistem yang lebih lama dari Windows 2000, mereka mengklik perintah Temukan pada menu Alat untuk menampilkan menu yang pada dasarnya sama dengan yang terkait dengan menu Mulai . Namun, Windows Explorer untuk Windows 2000 menangani mesin pencari dengan cara yang sangat berbeda. Alih-alih menangani mesin pencari sebagai submenu menu Alat , sekarang ada tombol Pencarian pada toolbar. Mengklik tombol ini akan membuka panel Pencarian bilah Penjelajah. Ilustrasi berikut ini memperlihatkan panel pencarian Cari File dan Folder .

the windows explorer bar's search pane

Ada sejumlah perbedaan dalam bagaimana Windows 2000 dan sistem sebelumnya mengelola penangan pencarian yang memengaruhi implementasi dan pendaftaran.

Pra-Windows 2000 Windows 2000 dan yang lebih baru
Penangan pencarian diimplementasikan sebagai jenis penangan menu pintasan. Penangan pencarian dapat diimplementasikan sebagai penangan menu pintasan, atau sebagai dokumen HTML Dinamis (DHTML).
Penangan pencarian bisa statis atau dinamis. Handler statis dimuat hanya ketika dipilih oleh pengguna. Handler dinamis dimuat oleh Shell saat startup dan tidak dihentikan sampai Shell keluar. Handler yang diimplementasikan sebagai penangan menu pintasan dapat berupa statis atau dinamis. Handler yang diimplementasikan sebagai dokumen DHTML harus statis.
Penangan pencarian muncul pada submenu Temukan menu Mulai dan submenu Temukan dari menu Alat Windows Explorer. Penangan pencarian hanya muncul pada submenu Pencarian dari menu Mulai . Untuk membuat panel pencarian kustom tersedia melalui bilah menu Windows Explorer, Anda harus menerapkannya sebagai objek pita. Kemudian tercantum pada submenu Bilah Penjelajah dari menu Tampilan Windows Explorer.

 

Mendaftarkan Penangan Pencarian

Penangan pencarian terdaftar di bawah subkunji FindExtensionsjenis file.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  FindExtensions

Dari titik ini, prosedur pendaftaran tergantung pada apakah handler akan statis atau dinamis. Untuk diskusi umum tentang cara mendaftarkan penangan ekstensi Shell, lihat Membuat Penangan Ekstensi Shell.

Mendaftarkan Handler Pencarian Statis

Handler pencarian statis dimuat hanya ketika diluncurkan oleh pengguna. Pendekatan ini berfungsi paling baik untuk DLL yang kecil dan dapat dimuat dengan cepat. Jika Anda menggunakan DHTML untuk mengimplementasikan handler Anda, itu harus statis. Untuk mendaftarkan handler ekstensi statis, buat subkunci bernama untuk handler di bawah subkunci Statis subkunci FindExtensions . Nama ini tidak digunakan oleh sistem, tetapi tidak boleh identik dengan nama handler pencarian lain di bawah subkunjuk FindExtensions .

Penangan pencarian berbasis menu pintasan

Jika handler Anda diimplementasikan sebagai handler menu pintasan, atur nilai default subkunci nama handler ke GUID pengidentifikasi kelas objek (CLSID). Di bawah subkunci nama handler, buat subkunci bernama 0 (nol) dan atur nilai defaultnya ke string yang akan ditampilkan di submenu Cari atau Temukan . Anda dapat mengaktifkan pintasan keyboard dengan cara yang biasa, dengan mendahului karakter pintasan dengan ampersand (&). Anda dapat memiliki ikon kecil opsional yang ditampilkan di sebelah kanan teks menu dengan membuat subkunci DefaultIcon di bawah 0 subkunci. Atur nilai defaultnya ke string yang berisi jalur file yang berisi ikon, diikuti dengan koma, diikuti oleh indeks berbasis nol ikon.

Contoh berikut mendaftarkan handler pencarian MySearchEngine . Teks menu adalah "Mesin Pencari Saya", dengan M ditentukan sebagai kunci pintasan. Ikon berada di C:\MyDir\MySearch.dll, dengan indeks 2.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  FindExtensions
                     Static
                        MySearchEngine
                           (Default) = {MySearchEngine CLSID GUID}
                           0
                              (Default) = &My Search Engine
                              DefaultIcon
                                 (Default) = c:\MyDir\MySearch.dll,2

Penangan pencarian berbasis DHTML

Dengan Windows 2000, Anda juga dapat menerapkan handler pencarian sebagai dokumen DHTML. Namanya tercantum dalam submenu Pencarian dari menu Mulai . Ketika pengguna memilihnya, pengguna meluncurkan Windows Explorer dengan bilah Explorer yang dibuka ke dokumen pencarian. Anda juga dapat menentukan dokumen DHTML yang akan ditampilkan di sebelah kanan bilah Explorer. Tidak ada cara untuk meluncurkan handler yang berbeda dari panel Pencarian default. Mesin pencari dapat diluncurkan langsung dari Windows Explorer, tetapi hanya jika diimplementasikan sebagai objek pita.

Untuk mendaftarkan handler pencarian berbasis DHTML, atur subkunci nama handler ke bentuk string CLSID_ShellSearchExt (saat ini {169A0691-8DF9-11d1-A1C4-00C04FD75D13}) dan buat subkunci berikut.

  1. Buat subkunci 0(nol) di bawah subkunci nama handler dan atur nilai defaultnya ke teks menu.
  2. Agar ikon ditampilkan di samping teks menu, buat subkunci DefaultIcon di bawah 0 dan atur nilai defaultnya ke jalur dan indeks ikon.
  3. Buat subkunci SearchGUID di bawah 0. Tetapkan GUID ke dokumen DHTML dan atur nilai default SearchGUID ke formulir string-nya. GUID ini tidak perlu didaftarkan di bawah HKEY_CLASSES_ROOT\CLSID.
  4. Buat subkunci Url di bawah SearchGUID. Atur nilai defaultnya ke jalur dokumen HTML yang akan muncul di bilah Explorer.
  5. Buat subkunci UrlNavNew di bawah SearchGUID. Atur nilai defaultnya ke jalur dokumen HTML yang akan muncul di sebelah kanan bilah Explorer.

Contoh berikut mendaftarkan penanganan pencarian MySearchEngine yang diimplementasikan sebagai dokumen DHTML. Teks menu adalah "Mesin Pencari Saya", dengan M ditentukan sebagai kunci pintasan. Ikon berada di C:\MyDir\MySearch.dll, dengan indeks 2. Dokumen DHTML bilah Explorer adalah C:\MyDir\MySearch.htm, dan dokumen yang akan ditampilkan di sebelah kanan bilah Explorer adalah C:\MyDir\MySearchPage.htm.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  FindExtensions
                     Static
                        MySearchEngine
                           (Default) = {169A0691-8DF9-11d1-A1C4-00C04FD75D13}
                           0
                              (Default) = &My Search Engine
                              DefaultIcon
                                 (Default) = c:\MyDir\MySearch.dll,2
                                 SearchGUID
                                    (Default) = {My Search GUID}
                                    Url
                                       (Default) = C:\MyDir\MySearch.htm
                                    UrlNavNew
                                       (Default) = C:\MyDir\MySearchPage.htm

Mendaftarkan Handler Pencarian Dinamis

Jika handler Anda diimplementasikan sebagai penangan menu pintasan, Anda juga dapat mendaftarkannya sebagai handler dinamis. Dalam hal ini, itu akan dimuat dengan Shell dan akan berakhir hanya ketika Shell keluar. Penangan pencarian dinamis merespons jauh lebih cepat daripada handler statis saat diluncurkan oleh pengguna. Pendekatan ini berfungsi paling baik jika DLL handler Anda mungkin membutuhkan waktu lama untuk dimuat, atau jika kemungkinan sering dipanggil.

Penangan pencarian dinamis terdaftar di bawah subkunji FindExtensions .

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  FindExtensions

Buat subkunci FindExtensions bernama untuk handler, dan atur nilai defaultnya ke GUID CLSID handler. Ikon menu tidak didukung untuk penangan pencarian dinamis. Contoh berikut mendaftarkan MySearchEngine sebagai penangan pencarian dinamis.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  FindExtensions
                     MySearchEngine
                        (Default) = {MySearchEngine CLSID GUID}
                        0
                           (Default) = &My Search Engine

Tidak seperti penangan pencarian statis, Anda tidak menentukan teks menu dalam registri. Ketika handler dimuat, Shell akan memanggil metode IContextMenu::QueryContextMenu handler untuk menambahkan item ke submenu Temukan atau Cari.

Menerapkan Penangan Pencarian

Penangan pencarian dapat diimplementasikan sebagai penangan menu pintasan untuk semua versi Windows. Untuk Windows 2000, mereka juga dapat diimplementasikan sebagai dokumen DHTML.

Untuk diskusi umum tentang cara menerapkan penangan menu pintasan, lihat Membuat Penangan Menu Konteks. Penangan pencarian berbeda dari penangan menu pintasan standar hanya dengan beberapa cara.

Untuk penangan menu statis, submenu Temukan atau Cari dibuat dari informasi di registri. Handler tidak perlu menambahkan item menu, seperti yang dilakukan oleh handler menu pintasan normal. Shell mengelola penangan menu statis dengan cara berikut.

Penangan pencarian dinamis diimplementasikan dengan cara yang sama seperti penangan menu pintasan normal. Pengecualian utama adalah bahwa ketika IShellExtInit::Initialize dipanggil, argumen pidlFolder dan lpdobj diatur ke NULL.

Penangan pencarian berbasis DHTML diimplementasikan sebagai dokumen DHTML normal. Mereka dapat menyertakan html, DHTML, atau teknologi pembuatan skrip apa pun yang didukung oleh Windows Internet Explorer.