Fungsi SHAddToRecentDocs (shlobj_core.h)

Memberi tahu sistem bahwa item telah diakses, untuk tujuan melacak item yang digunakan paling baru dan paling sering. Fungsi ini juga dapat digunakan untuk menghapus semua data penggunaan.

Sintaks

void SHAddToRecentDocs(
                 UINT    uFlags,
  [in, optional] LPCVOID pv
);

Parameter

uFlags

Jenis: UINT

Nilai dari enumerasi SHARD yang menunjukkan bentuk informasi yang ditunjukkan oleh parameter pv .

[in, optional] pv

Jenis: LPCVOID

Penunjuk ke data yang mengidentifikasi item yang telah diakses. Item dapat ditentukan dalam parameter ini dalam salah satu formulir berikut:

Atur parameter ini ke NULL untuk menghapus semua data penggunaan pada semua item.

Nilai kembali

Tidak ada

Keterangan

Statistik penggunaan yang dikumpulkan melalui panggilan ke metode ini digunakan untuk menentukan daftar item yang diakses paling baru dan paling sering. Daftar ini terlihat di menu Mulai dan, di Windows 7 dan yang lebih baru, dalam Jump List aplikasi.

Ketika metode ini dipanggil, metode ini mempengaruhi area berikut:

  • Updates daftar Terbaru dan Sering untuk Jump List aplikasi terkait.
  • Menambahkan pintasan ke folder Terbaru pengguna (FOLDERID_Recent, CSIDL_RECENT). Ini tercermin dalam menu Dokumen Terbaru Saya (Windows XP) dan Item Terbaru (Windows Vista dan yang lebih baru) di menu Mulai .
  • Menambahkan pintasan ke submenu Dokumen menu Mulai Klasik. (Perhatikan bahwa opsi menu Mulai Klasik tidak tersedia di Windows 7 dan yang lebih baru.)
Item yang diwakili oleh IShellLink tidak ditambahkan ke folder Terbaru , meskipun tercermin dalam Jump List aplikasi.

Dalam beberapa kasus, terutama ketika pengguna membuka item melalui Windows Explorer atau menggunakan dialog file umum untuk membuka, menyimpan, atau membuat file, Shell memanggil SHAddToRecentDocs atas nama aplikasi. Aplikasi yang memiliki UI kustom untuk memilih item harus memanggil SHAddToRecentDocs secara eksplisit untuk memastikan statistik yang akurat. Panggilan duplikat diperkirakan oleh sistem sehingga tidak ada risiko condong data dengan melakukannya.

File yang dapat dieksekusi (.exe) difilter dari daftar dokumen yang baru digunakan di Windows XP dan versi yang lebih baru. Meskipun SHAddToRecentDocs akan menerima jalur file yang dapat dieksekusi, file tersebut tidak akan muncul di daftar Item Terbaru .

Folder juga diterima oleh SHAddToRecentDocs, tetapi hanya muncul di Jump List untuk tombol taskbar Windows Explorer. Folder tidak muncul di Jump List aplikasi lainnya.

Dalam kasus tertentu, SHAddToRecentDocs mencoba mendaftarkan aplikasi untuk menangani jenis file yang tidak terdaftar untuk ditangani. Ini terjadi dalam keadaan ini:

  • Aplikasi secara eksplisit memanggil SHAddToRecentDocs dengan jenis file yang tidak terdaftar untuk ditangani. Ini juga berlaku untuk panggilan yang dilakukan ke SHAddToRecentDocs dengan dialog file umum atas nama aplikasi, tetapi hanya ketika dialog digunakan untuk membuka file, bukan ketika digunakan untuk menyimpannya.
  • Pengguna menghilangkan file jenis yang tidak didaftarkan aplikasi untuk ditangani pada tombol taskbar aplikasi.
Pendaftaran ini dilakukan per pengguna.

Serangkaian persyaratan harus dipenuhi agar pendaftaran berhasil dicapai:

  • Aplikasi harus terdaftar di HKEY_CLASSES_ROOT\Applications.
  • Pendaftaran tersebut tidak dapat menyertakan nilai NoOpenWith. Lihat Jenis File untuk detail selengkapnya tentang NoOpenWith.
  • Pendaftaran tersebut tidak dapat menyediakan data di bawah subkun tangan SupportedTypes . Lihat Jenis File untuk detail selengkapnya tentang subkunci SupportedTypes .
  • File yang dapat dieksekusi aplikasi tidak dapat dicantumkan dalam nilai KillList yang ditemukan di sini:
    HKEY_LOCAL_MACHINE
       Software
          Microsoft
             Windows
                CurrentVersion
                   Explorer
                      FileAssociation
                         KillList
    Catatan Aplikasi pihak ketiga tidak boleh mengubah nilai KillList. Ini harus dianggap sebagai baca-saja.
     
  • Pendaftaran aplikasi HKEY_CLASSES_ROOT\Applications harus memiliki sekumpulan kata kerja default yang ditentukan di bawah HKEY_CLASSES_ROOT\Applications\ExampleApp.exe\shell subkey.

    Jika SHAddToRecentDocs mencoba pendaftaran sebagai hasil seret dan letakkan ke tombol taskbar, subkunci shell dibuat jika belum ada, selama pendaftaran aplikasi yang ada tidak berisi nilai NoOpenWith dan aplikasi yang dapat dieksekusi tidak tercantum dalam nilai KillList.

Menekan Panggilan ke SHAddToRecentDocs

Dalam versi Windows sebelum Windows 7, tipe file dapat mengatur bendera FTA_NoRecentDocs untuk mencegah tipe file ditambahkan ke folder Terbaru . Mekanisme ini juga didukung di bawah Windows 7 dan yang lebih baru. Lihat Jenis File untuk informasi selengkapnya.

SHAddToRecentDocs melacak statistik penggunaan dokumen melalui kata kerja yang dipanggil untuk mengakses dokumen tersebut. Kata kerja yang disediakan oleh handler IContextMenu terdaftar dilacak, item tersebut muncul di Dokumen Terbaru Saya (Windows XP) dan Item Terbaru (Windows Vista). Di Windows 7, folder induk dokumen muncul di Jump List untuk tombol taskbar Windows Explorer. Namun, dokumen yang diakses melalui kata kerja IContextMenu tersebut tidak muncul dalam aplikasi Jump Lists. Agar item tersebut muncul dalam Jump List aplikasi, aplikasi harus memanggil SHAddToRecentDocs secara eksplisit.

Sebelum Windows 7, hanya open kata kerja yang menghasilkan panggilan ke SHAddToRecentDocs. Di Windows 7 dan yang lebih baru, kata kerja lain juga dapat menghasilkan statistik penggunaan. Informasi ini digunakan untuk membuat tujuan Jump List lebih lengkap dan akurat.

Namun, beberapa kelas pendaftaran asosiasi jenis file atau implementasi IContextMenu individual tidak sesuai untuk pelacakan semacam ini. Titik pelacakan penggunaan adalah untuk menghasilkan daftar item yang kemungkinan ingin diakses pengguna lagi. Jika kata kerja tertentu—delete, misalnya—secara inheren dipanggil pada item yang tidak akan diakses pengguna lagi, atau merupakan tindakan sekunder seperti pemindaian virus pada file, kata kerja tersebut tidak sesuai untuk pelacakan. Kelas jenis file harus menghapus diri mereka sendiri dari pelacakan ini melalui entri registri NoRecentDocs. NoRecentDocs berjenis REG_SZ dan tidak memiliki data terkait. Kehadirannya adalah semua yang diperlukan untuk mencegah panggilan ke SHAddToRecentDocs.

Misalnya, ekstensi menu konteks dan kata kerja statis yang terdaftar di bawah HKEY_CLASSES_ROOT di kelas seperti "*", "AllFileSystemObjects", atau "Folder" tidak boleh dilacak. Dalam kasus seperti ini, entri NoRecentDocs ditambahkan ke akar kunci kelas seperti yang ditunjukkan di sini untuk menekan pelacakan dokumen yang diluncurkan melalui kata kerja atau ekstensi apa pun yang terdaftar ke kelas tersebut:

HKEY_CLASSES_ROOT
   AllFileSystemObjects
      NoRecentDocs

Entri NoRecentDocs ditetapkan secara default ke *subkunci kelas , AllFileSystemObjects, Folder, Directory, dan DesktopBackground .

Implementasi IContextMenu individu dapat menolak pelacakan dengan menambahkan subkunci NoRecentDocs ke pendaftaran objek Model Objek Komponen (COM), dalam subkunci shellex-nya , seperti yang ditunjukkan di sini:

HKEY_CLASSES_ROOT
   CLSID
      {093C7AAB-5E72-454f-A91D-CA1BC991FCEC}
         shellex
            NoRecentDocs

Subkey ini tidak ada secara default pada implementasi IContextMenu apa pun.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shlobj_core.h (termasuk Shlobj.h)
Pustaka Shell32.lib
DLL Shell32.dll (versi 4.0 atau yang lebih baru)
Set API ext-ms-win-shell-shell32-l1-2-2 (diperkenalkan dalam Windows 10, versi 10.0.14393)

Lihat juga

SHGetFolderLocation

SHGetFolderPath