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:
- String yang dihentikan null yang berisi jalur dan nama file item.
- PIDL yang mengidentifikasi objek file item.
- Hanya Windows 7 dan yang lebih baru. Struktur SHARDAPPIDINFO, SHARDAPPIDINFOIDLIST, atau SHARDAPPIDINFOLINK yang mengidentifikasi item melalui AppUserModelID. Lihat ID Model Pengguna Aplikasi (AppUserModelIDs) untuk informasi selengkapnya.
- Hanya Windows 7 dan yang lebih baru. Objek IShellLink yang mengidentifikasi item melalui pintasan.
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.)
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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk