Membuat Handler Pembersihan Disk

Satu waktu yang terbukti aksiom dan sekali lagi di dunia komputer adalah bahwa terlepas dari ukuran kapasitas penyimpanan komputer Anda, Anda akhirnya akan mengisinya. Meskipun ukuran rata-rata hard disk komputer telah meningkat secara dramatis dari waktu ke waktu, aplikasi juga telah tumbuh sesuai, meninggalkan pengguna mencari cara untuk membuat lebih banyak ruang hard disk kosong. Ruang yang tersedia juga dikurangi oleh banyak file sementara yang dibuat aplikasi karena alasan pencadangan atau performa. Ketika ruang disk menjadi rendah, perlu untuk mengurangi jumlah ruang yang digunakan oleh aplikasi. Ruang disk dapat dibebaskan menggunakan berbagai cara, termasuk yang berikut ini:

  • Menghapus file.
  • Memadatkan file.
  • Memindahkan file ke media cadangan.
  • Mentransfer file ke server jarak jauh.

File yang merupakan kandidat yang baik untuk pembersihan meliputi:

  • File yang tidak akan pernah dibutuhkan pengguna lagi.
  • File sementara yang ada hanya karena alasan performa.
  • File yang dapat dipulihkan, jika diperlukan, dari CD penginstalan.
  • File data yang mungkin telah digantikan oleh versi yang lebih baru, seperti file cadangan lama.
  • File lama yang tidak digunakan dalam waktu yang lama.

Penghapusan sangat sesuai untuk file yang tidak akan pernah dibutuhkan pengguna lagi misalnya, file yang di-cache sementara karena alasan performa. Penghapusan juga sesuai untuk file yang mudah dipulihkan, seperti file grafis yang dapat dimuat ulang dari CD penginstalan. File yang mungkin dibutuhkan pengguna nanti atau yang akan sulit direkonstruksi adalah kandidat yang lebih baik untuk kompresi atau cadangan.

Mengharapkan pengguna membersihkan sistem file secara manual bukanlah solusi yang baik. Pengguna mungkin tidak tahu di mana banyak file berada atau cara mengenali file mana yang dapat dihapus dengan aman. Selain itu, ada risiko bahwa pengguna mungkin menghapus file penting.

Faset utilitas Pembersihan Disk berikut dibahas dalam topik ini.

Utilitas Pembersihan Disk Windows

Mulai dari Windows 98, sistem operasi Windows mencakup Pembersihan Disk, utilitas yang memudahkan pengguna untuk mengelola ruang hard disk yang tersedia. Utilitas Pembersihan Disk dirancang untuk membebaskan ruang disk sebanyak mungkin dan mengurangi risiko pengguna akan menghapus file penting secara tidak sengaja.

Pembersihan disk dapat dimulai dengan tiga cara.

  • Pengguna dapat memulai pembersihan disk dengan mengklik Mulai; menunjuk ke Semua Program, Aksesori, dan Alat Sistem; lalu mengklik Pembersihan Disk.
  • Sistem memberi tahu pengguna dengan kotak pesan bahwa ruang disk yang tidak digunakan telah mencapai mode kritis. Ambang mode kritis untuk drive yang lebih besar dari 2,25 gigabyte (GB) adalah 200 megabyte (MB). Peringatan berikutnya diberikan pada 80, 50, dan 1 MB. Pengguna diberi opsi untuk membebaskan ruang disk secara manual atau memulai utilitas Pembersihan Disk.
  • Pengguna dapat memiliki Wizard Tugas Terjadwal Windows (dikenal sebagai Wizard Pemeliharaan pada sistem yang lebih lama) menjalankan utilitas Pembersihan Disk secara otomatis pada waktu yang dijadwalkan.

Tantangan dasar yang melekat pada pembersihan disk adalah membebaskan ruang disk sebanyak mungkin tanpa menghapus file penting. Karena tidak ada cara standar untuk menandai file untuk pembersihan, tidak ada satu aplikasi pun yang dapat mendeteksi dan membersihkan semua file unessential dengan andal. Utilitas Pembersihan Disk mengatasi masalah ini dengan memisahkan operasi pembersihan antara satu manajer pembersihan disk dan kumpulan penangan pembersihan disk.

Saat utilitas Pembersihan Disk dijalankan, pengguna akan melihat kotak dialog berikut. (Jika ada lebih dari satu disk atau partisi disk di komputer, pengguna pertama kali diminta untuk memilih drive sebelum dialog ini ditampilkan.)

cuplikan layar kotak dialog pembersihan

Manajer pembersihan disk adalah bagian dari sistem operasi. Ini menampilkan kotak dialog yang diperlihatkan dalam ilustrasi sebelumnya, menangani input pengguna, dan mengelola operasi pembersihan. Pemilihan aktual dan pembersihan file yang tidak diperlukan dilakukan oleh penangan pembersihan disk individual yang ditunjukkan dalam kotak daftar manajer pembersihan disk. Pengguna memiliki opsi untuk mengaktifkan atau menonaktifkan handler individual dengan memilih atau menghapus kotak centang mereka di UI manajer pembersihan disk.

Setiap handler bertanggung jawab atas sekumpulan file yang ditentukan dengan baik. Misalnya, handler yang dipilih dalam ilustrasi bertanggung jawab untuk membersihkan file program yang diunduh. Handler yang dipilih dalam ilustrasi juga menyediakan tombol Tampilkan File . Dengan mengklik tombol , pengguna dapat meminta agar handler menampilkan UI biasanya jendela Windows Explorer yang memungkinkan pengguna menentukan file atau kelas file mana yang akan dibersihkan.

Meskipun Windows dilengkapi dengan sejumlah handler pembersihan disk, mereka tidak dirancang untuk menangani file yang diproduksi oleh aplikasi lain. Sebaliknya, manajer pembersihan disk dirancang agar fleksibel dan dapat diperluas dengan memungkinkan pengembang untuk mengimplementasikan dan mendaftarkan handler pembersihan disk mereka sendiri. Setiap pengembang dapat memperluas layanan pembersihan disk yang tersedia dengan menerapkan dan mendaftarkan handler pembersihan disk.

Semua aplikasi yang menghasilkan file sementara dapat dan harus mengimplementasikan dan mendaftarkan handler pembersihan disk. Melakukannya memberi pengguna cara yang nyaman dan dapat diandalkan untuk mengelola file sementara aplikasi. Saat menerapkan handler, Anda dapat memutuskan file mana yang terpengaruh dan menentukan bagaimana pembersihan aktual terjadi.

Dasar-Dasar Implementasi

Handler pembersihan adalah objek Model Objek Komponen (COM) server dalam proses. Windows menyediakan objek handler yang sudah ada yang disebut DataDrivenCleaner untuk Anda gunakan. Anda juga dapat memilih untuk mengimplementasikan handler sendiri untuk lebih banyak fleksibilitas. Objek-objek ini kemudian memungkinkan Anda untuk menentukan cara memilih file, membebaskan ruang disk, dan, dalam kasus handler yang diimplementasikan, menampilkan UI opsional untuk kontrol yang lebih terperinci. Bagian ini membahas masalah penerapan handler Anda sendiri. Untuk detail tentang penggunaan objek DataDrivenCleaner, lihat Menggunakan Objek DataDrivenCleaner.

Handler pembersihan disk harus melakukan lima tugas dasar ini.

  • Menginisialisasi objek handler.
  • Pindai disk untuk menentukan berapa banyak ruang disk yang dapat dibebaskan.
  • Tampilkan UI untuk mendapatkan umpan balik pengguna tentang file mana yang akan dibersihkan. (Opsional)
  • Lakukan pembersihan.
  • Matikan.

Untuk mengizinkan manajer pembersihan disk mengelola tugas-tugas ini, handler harus mengekspor IEmptyVolumeCache untuk Windows 98 atau IEmptyVolumeCache2 untuk Windows Millennium Edition (Windows Me), Windows 2000, dan Windows XP. Karena IEmptyVolumeCache2 mewarisi dari IEmptyVolumeCache, menambahkan hanya metode tambahan InitializeEx, pekerjaan yang relatif sedikit diperlukan untuk mengimplementasikan keduanya. Kecuali handler Anda hanya ditujukan untuk salah satu sistem operasi ini, penghandel harus mengekspor kedua antarmuka.

Untuk mengekspor antarmuka ini, Anda harus menerapkan metode ini yang sesuai dengan lima tugas dasar.

Inisialisasi/InitializeEx

Dua metode inisialisasi, yang cukup mirip, dipanggil ketika utilitas Pembersihan Disk dijalankan. Manajer pembersihan disk Windows 98 memanggil metode IEmptyVolumeCache::Initialize handler. Manajer pembersihan disk Windows Millennium Edition (Windows Me), Windows 2000, atau Windows XP, namun, pertama-tama mencoba memanggil IEmptyVolumeCache2::InitializeEx dan hanya menggunakan IEmptyVolumeCache::Initialize jika IEmptyVolumeCache2 tidak diekspos oleh handler. Manajer pembersihan disk meneruskan informasi ke metode , seperti kunci registri handler dan volume disk yang akan dibersihkan.

Salah satu metode dapat mengembalikan berbagai string tampilan dan mengatur satu atau beberapa bendera. Perbedaan utama antara kedua metode adalah bagaimana teks yang ditampilkan di manajer pembersihan disk ditangani. Tiga string berikut terpengaruh.

String Tujuan Initialize InitializeEx
Nama Tampilan Nama handler ditampilkan dalam kotak daftar manajer pembersihan disk. Jika ppwszDisplayName adalah NULL, nilai default diambil dari registri. String yang dilokalkan dengan benar harus ditentukan dalam ppwszDisplayName tidak ada nilai registri yang digunakan.
Deskripsi Teks deskriptif ditampilkan di bawah kotak daftar saat nama handler dipilih. Jika ppwszDescription adalah NULL, nilai default diambil dari registri. String yang dilokalkan dengan benar harus ditentukan dalam ppwszDescription tidak ada nilai registri yang digunakan.
Teks Tombol Teks untuk tombol opsional yang memungkinkan pengguna menampilkan UI handler. Tidak ada parameter yang tersedia. Harus ditentukan dalam registri. String yang dilokalkan dengan benar harus ditentukan dalam ppwszBtnText tidak ada nilai registri yang digunakan.

Parameter pdwFlags yang ditemukan dalam kedua metode inisialisasi mengenali set bendera yang sama. Dua bendera ini diteruskan ke metode oleh manajer pembersihan disk.

  • EVCF_SETTINGSMODE

    Jika manajer pembersihan disk dijalankan sesuai jadwal, manajer pembersihan disk mengatur bendera EVCF_SETTINGSMODE . Jika bendera ini diatur, manajer pembersihan disk tidak memanggil metode GetSpaceUsed, Purge, atau ShowProperties . Metode Initialize atau InitializeEx handler harus menangani semua tugas yang biasanya dilakukan oleh GetSpaceUsed dan Purge. Karena tidak ada kesempatan untuk umpan balik pengguna, hanya file-file yang sangat aman untuk dibersihkan yang harus disentuh. Anda harus mengabaikan parameter pcwszVolume metode inisialisasi dan membersihkan file yang tidak diperlukan terlepas dari drive apa yang mereka gunakan.

  • EVCF_OUTOFDISKSPACE

    Jika bendera EVCF_OUTOFDISKSPACE diatur, disk drive pengguna sangat pendek ruangnya. Handler harus agresif menghapus file, bahkan jika itu mengalihkan kehilangan performa. Namun, handler jelas tidak boleh menghapus file yang akan menyebabkan aplikasi gagal atau pengguna kehilangan data.

Bendera yang tersisa diatur oleh handler pembersihan disk dan dikembalikan ke manajer pembersihan disk. Untuk informasi selengkapnya, lihat halaman referensi metode untuk IEmptyVolumeCache::Initialize dan IEmptyVolumeCache2::InitializeEx.

  • EVCF_DONTSHOWIFZERO

    Tampilkan handler dalam kotak daftar manajer pembersihan disk hanya jika nilai yang dikembalikan oleh GetSpaceUsed menunjukkan bahwa handler dapat membebaskan beberapa ruang disk.

  • EVCF_ENABLEBYDEFAULT

    Menentukan bahwa handler diaktifkan secara default. Ini akan berjalan setiap kali pembersihan disk terjadi kecuali pengguna menonaktifkannya dengan mengosongkan kotak centangnya di daftar handler manajer pembersihan disk.

  • EVCF_ENABLEBYDEFAULT_AUTO

    Menentukan bahwa handler secara otomatis diaktifkan untuk berjalan selama pembersihan terjadwal.

  • EVCF_HASSETTINGS

    Atur bendera ini jika handler Anda memiliki UI untuk ditampilkan. Sebagai respons, manajer pembersihan disk menampilkan tombol saat handler tersebut dipilih dalam kotak daftar. Jika tombol tersebut diklik, manajer pembersihan disk memanggil ShowProperties.

  • EVCF_REMOVEFROMLIST

    Hapus nama handler dari daftar handler yang tersedia setelah handler dijalankan sekali. Informasi registri handler juga dihapus.

GetSpaceUsed

Manajer pembersihan disk memanggil metode ini untuk menentukan berapa banyak ruang yang mungkin dapat dibebaskan oleh penangan pembersihan disk. Manajer pembersihan disk kemudian menampilkan nilai tersebut di sebelah kanan nama handler dalam kotak daftar. Operasi ini dilakukan pada semua handler yang terdaftar di manajer pembersihan disk ketika manajer diluncurkan dan sebelum UI utama manajer ditampilkan. Ketika GetSpaceUsed dipanggil , handler harus memindai file yang bertanggung jawab, menentukan kandidat pembersihan, dan mengembalikan jumlah ruang disk yang dapat dibebaskannya.

Karena pemindaian bisa menjadi proses yang panjang, manajer pembersihan disk menggunakan parameter picb metode ini untuk meneruskan penunjuk ke antarmuka IEmptyVolumeCacheCallBack . Handler menggunakan antarmuka secara berkala selama pemindaian untuk memanggil IEmptyVolumeCacheCallBack::ScanProgress, yang melayani dua tujuan.

  • Memungkinkan manajer pembersihan disk memperbarui bilah kemajuan, memberi tahu pengguna bagaimana pemindaian berlangsung.
  • Memberi tahu handler untuk menghentikan pemindaian jika tombol Batalkan jendela kemajuan diklik. Peristiwa tombol itu tidak dikomunikasikan langsung ke handler; sebaliknya, manajer pembersihan disk mengembalikan E_ABORT lain kali GetSpaceUsed memanggil IEmptyVolumeCacheCallBack::ScanProgress.

ShowProperties

Sebelum memulai pembersihan, handler dapat menampilkan UI biasanya dalam bentuk jendela Windows Explorer yang memungkinkan pengguna melihat daftar file atau kelas file yang dipilih untuk dibersihkan oleh handler. Jika handler mengatur bendera EVCF_HASSETTINGS saat Initialize atau InitializeEx dipanggil, pengguna dapat meminta UI dengan mengklik tombol yang ditampilkan untuk tujuan tersebut di manajer pembersihan disk. Teks tombol bervariasi dari handler ke handler, tetapi "View Files," "View Pages," dan "Options" adalah label umum.

Ketika tombol diklik, manajer pembersihan disk memanggil ShowProperties untuk meminta handler menampilkan UI. UI harus dibuat sebagai anak dari jendela yang handelnya diteruskan dalam parameter hwnd metode ShowProperties.

Purge

Manajer pembersihan disk memanggil metode Pembersihan handler untuk mengatur pembersihan yang bergerak. Parameter picb metode adalah penunjuk ke antarmuka IEmptyVolumeCacheCallBack manajer pembersihan disk. Seperti metode GetSpaceUsed , handler harus menggunakan antarmuka panggilan balik secara berkala untuk melaporkan kemajuannya dan meminta manajer pembersihan disk apakah pengguna telah mengklik Batal. Namun, perhatikan bahwa metode Pembersihan harus memanggil IEmptyVolumeCacheCallBack::P urgeProgress, bukan ScanProgress.

Menonaktifkan

Metode Nonaktifkan dipanggil ketika manajer pembersihan disk bersiap untuk mematikan. Handler harus melakukan tugas pembersihan yang diperlukan dan kembali. Jika Anda tidak ingin handler dijalankan lagi, atur bendera EVCF_REMOVEFROMLIST dalam parameter pdwFlags metode inisialisasi . Jika bendera ini diatur, manajer pembersihan disk akan menghapus handler dari daftarnya dan menghapus entri registri handler. Anda harus menambahkan kembali entri registri untuk menjalankan handler lagi. Bendera ini biasanya digunakan untuk handler yang dijalankan hanya sekali.

Mendaftarkan Handler Pembersihan Disk

Untuk menambahkan handler ke daftar manajer pembersihan disk, kunci dan nilai tertentu harus ditambahkan ke registri Windows.

Mendaftarkan CLSID Handler

Seperti semua objek COM, GUID dan DLL objek handler harus didaftarkan di bawah kunci CLSID di HKEY_CLASSES_ROOT. Anda juga dapat mendaftarkan ikon yang ditampilkan di samping nama handler di kotak daftar manajer pembersihan disk, tetapi ini opsional. Contoh berikut menunjukkan kunci, nilai, dan data yang terlibat.

HKEY_CLASSES_ROOT
   CLSID
      Handler's GUID
         DefaultIcon
            (Default) = Handler's Icon Path, Icon Index
         InprocServer32
            (Default) = Handler's DLL path
            ThreadingModel = Apartment

Mendaftarkan Handler dengan Manajer Pembersihan Disk: Umum

Untuk menyelesaikan pendaftaran, handler harus menambahkan kunci yang memegang spesifikasinya seperti yang ditunjukkan di sini. Sisa bagian ini membahas isi kunci ini.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  VolumeCaches
                     Handler's Key

Secara umum, nama kunci yang memegang khusus handler dinamai untuk jenis file yang ditanganinya, seperti File Program yang Diunduh, tetapi ini bukan persyaratan. Tabel berikut ini merinci nilai yang mungkin ditemukan di bawah kunci ini.

Catatan

Hanya nilai Default yang menentukan pengidentifikasi kelas handler (CLSID) yang diperlukan semua nilai lain bersifat opsional.

Nilai Jenis Makna
Default REG_SZ CLSID handler sebagaimana terdaftar di bawah HKEY_CLASSES_ROOT\CLSID.
AdvancedButtonText REG_SZ Teks untuk tombol opsional yang dapat diklik pengguna untuk menampilkan UI handler. Karakter & dapat ditempatkan sebelum karakter untuk menetapkan pintasan keyboard untuk tombol tersebut. Nilai AdvancedButtonText diabaikan oleh handler yang mengekspos IEmptyVolumeCache2::InitializeEx.
CleanupString REG_SZ Baris perintah yang menentukan file yang dapat dieksekusi dan parameter baris perintah opsional. Baris perintah ini dijalankan pada penyelesaian pembersihan disk.
CSIDL REG_DWORD Pengidentifikasi independen sistem untuk folder khusus untuk disertakan dalam pencarian file. Nilai ini harus dimasukkan sebagai nilai numerik misalnya, 0x0000001c daripada CSIDL_LOCAL_APPDATA. Untuk daftar nilai yang mungkin, lihat CSIDL. Hanya satu nilai yang dapat digunakan.
Jika nilai Folder ditentukan, lokasi yang ditunjukkan oleh nilai CSIDL ditambahkan ke informasi tersebut untuk menyusun jalur pencarian. Misalnya, pertimbangkan skenario berikut.
  • Nilai CSIDL ditentukan sebagai 0x0000000d (CSIDL_MYMUSIC)
  • Folder Musik Saya terletak di C:\Documents and Settings\username\My Music
  • Nilai Folder berisi "Jazz\Singers"
Hasil dari skenario tersebut adalah bahwa handler pembersihan disk mencari folder C:\Documents and Settings\username\My Music\Jazz\Singers. Perhatikan bahwa garis miring sebelum nilai Folder ditambahkan jika tidak ada.
Deskripsi REG_SZ Teks deskriptif ditampilkan di bawah kotak daftar manajer pembersihan disk saat nama handler dipilih. Di sini Anda dapat menjelaskan apa yang dilakukan handler, file apa yang menjadi perhatiannya sendiri, dan informasi lain yang bersifat elucidatory kepada pengguna. Jika IEmptyVolumeCache2::InitializeEx tidak diekspos oleh handler, teks ini dapat ditimpa melalui metode IEmptyVolumeCache::Initialize handler dengan menentukan string alternatif dalam parameter ppwszDescription ketika metode dipanggil.
Tampilan REG_SZ Nama handler yang akan ditampilkan dalam kotak daftar manajer pembersihan disk. Jika IEmptyVolumeCache2::InitializeEx tidak diekspos oleh handler, teks ini dapat ditimpa melalui metode IEmptyVolumeCache::Initialize handler dengan menentukan string alternatif dalam parameter ppwszDisplayName saat metode dipanggil.
Daftar File REG_SZ atau REG_MULTI_SZ Daftar file yang dicari dan dibersihkan oleh handler ini. Anda dapat menentukan kartubebas menggunakan ? atau * karakter. Jika nilainya berjenis REG_SZ, beberapa ekstensi dipisahkan menggunakan | atau : karakter, tanpa spasi di kedua sisinya.
Jika bendera DDEVCF_REMOVEDIRS diatur dalam nilai Bendera, nilai-nilai ini dapat menentukan nama direktori serta file.
Bendera REG_DWORD atau REG_BINARY Bendera yang mengontrol elemen prosedur pencarian dan pembersihan. Satu atau beberapa nilai berikut ini.
  • DDEVCF_DOSUBDIRS (0x00000001). Cari dan hapus secara rekursif.
  • DDEVCF_REMOVEAFTERCLEAN (0x00000002). Setelah handler dijalankan sekali, hapus dari registri.
  • DDEVCF_REMOVEREADONLY (0x00000004). Hapus file yang memenuhi kriteria pencarian meskipun bersifat baca-saja.
  • DDEVCF_REMOVESYSTEM (0x00000008). Hapus file yang memenuhi kriteria pencarian meskipun file tersebut adalah file sistem.
  • DDEVCF_REMOVEHIDDEN (0x00000010). Hapus file yang memenuhi kriteria pencarian meskipun file tersebut adalah file tersembunyi.
  • DDEVCF_DONTSHOWIFZERO (0x00000020). Jangan tampilkan handler ini di manajer pembersihan disk jika tidak ada file yang cocok dengan kriteria pencariannya.
  • DDEVCF_REMOVEDIRS (0x00000040). Cocokkan nilai FileList dengan direktori dan hapus kecocokan dan semua subdirektorinya.
  • DDEVCF_RUNIFOUTOFDISKSPACE (0x00000080). Jalankan handler ini hanya jika ruang disk yang tersedia telah berada di bawah nilai kritis, ditentukan oleh manajer pembersihan disk yang mengatur bendera EVCF_OUTOFDISKSPACE melalui IEmptyVolumeCache::Initialize atau IEmptyVolumeCache2::InitializeEx.
  • DDEVCF_REMOVEPARENTDIR (0x00000100). Hapus direktori induk dari file yang ditentukan setelah pembersih berjalan.
  • DDEVCF_PRIVATE_LASTACCESS (0x10000000). Gunakan nilai LastAccess, jika disediakan, dalam memastikan file mana yang harus dibersihkan. Bendera ini diabaikan saat menggunakan DataDrivenCleaner , nilai LastAccess yang disediakan selalu digunakan.
Folder REG_SZ, REG_MULTI_SZ, atau REG_EXPAND_SZ Folder atau folder tertentu untuk mencari entri pencocokan item dalam nilai FileList. Anda dapat menentukan kartubebas menggunakan ? atau * karakter. Jika nilainya berjenis REG_SZ, beberapa nama folder dipisahkan menggunakan | karakter, tanpa spasi di kedua sisinya.
Jika ada nilai CSIDL, hanya satu folder yang dapat ditentukan dalam nilai ini. Lokasi yang ditunjukkan oleh nilai CSIDL ditambahkan ke jalur folder tersebut untuk menyusun jalur pencarian. Misalnya, lihat deskripsi nilai CSIDL.
Jika nilai ini tidak ada pada Windows Vista Service Pack 1 (SP1) dan yang lebih baru, handler pembersihan diabaikan dan mengembalikan S_FALSE pada inisialisasi.
Jika nilai ini tidak ada pada rilis asli Windows Vista dan sebelumnya, folder akar volume saat ini digunakan. Bendera DDEVCF_DOSUBDIRS diperlukan dalam hal ini untuk mencari seluruh drive. Tanpanya, hanya folder akar itu sendiri yang dicari.
Drive atau drive harus ditentukan. Ini dapat disediakan melalui nilai CSIDL atau melalui string REG_EXPAND_SZ. Namun, melarang opsi tersebut, drive yang akan dicari harus ditentukan dalam nama folder. Gunakan ?: untuk mencari folder pada drive saat ini.
IconPath REG_SZ atau REG_EXPAND_SZ Jalur ke sumber daya untuk mendapatkan ikon yang akan digunakan dalam kaitannya dengan handler.
LastAccess REG_DWORD atau REG_BINARY Jumlah hari yang harus berlalu sejak file terakhir diakses atau direktori dibuat untuk file atau direktori tersebut untuk dipertimbangkan untuk pembersihan.
Prioritas REG_DWORD atau REG_BINARY Menentukan urutan penghandel dijalankan sehubungan dengan handler lain. Semakin tinggi angka, semakin awal dalam proses yang dijalankan handler. Tidak ada rentang yang ditentukan nomor apa pun yang dapat diterima.
PropertyBag REG_SZ CLSID sumber daya yang digunakan untuk menyediakan teks yang dilokalkan untuk nama tampilan, deskripsi, dan teks tombol. Sumber daya ini berguna dalam situasi di mana handler tidak mengimplementasikan IEmptyVolumeCache dan handler sedang dijalankan di bawah Microsoft Windows NT atau Windows XP.
Manajer pembersihan disk terlebih dahulu memeriksa apakah rutinitas inisialisasi handler mengembalikan string tersebut, seperti halnya ketika IEmptyVolumeCache2 diimplementasikan. Gagal itu, manajer selanjutnya beralih ke tas properti bernama dalam nilai ini. Jika tidak ada yang disediakan, ia mengambil teks dari registri.
StateFlags REG_DWORD Dengan menjalankan file yang dapat dieksekusi manajer pembersihan disk Cleanmgr.exe dari baris perintah, Anda dapat mendeklarasikan profil pembersihan. Profil ini terdiri dari subset handler yang tersedia dan diberi label numerik yang unik. Ini memungkinkan Anda untuk mengotomatiskan berjalannya set handler yang berbeda pada waktu yang berbeda.
Baris perintah "cleanmgr.exe /sageset:nnnn", di mana nnnn adalah label numerik unik, menampilkan UI yang memungkinkan Anda memilih penangan yang akan disertakan dalam profil tersebut. Selain menentukan profil, parameter sageset juga menulis nilai bernama StateFlagsnnnn, di mana nnnn adalah label yang Anda gunakan dalam parameter , ke semua subkunci di bawah VolumeCaches. Ada dua kemungkinan nilai data untuk entri tersebut.
  • 0: Jangan jalankan handler ini saat profil ini dijalankan.
  • 2: Sertakan handler ini saat profil ini dijalankan.

Misalnya, misalkan baris perintah "cleanmgr.exe /sageset:1234" dijalankan. Di UI yang disajikan, pengguna memilih File Program yang Diunduh, tetapi tidak memilih File Internet Sementara. Nilai berikut kemudian ditulis ke registri.
HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  VolumeCaches
                     Downloaded Program Files
                        StateFlags1234 = 0x00000002
                     Internet Cache Files
                        StateFlags1234 = 0x00000000

Baris perintah "cleanmgr.exe /sagerun:nnnn", di mana nilai nnnn cocok dengan label yang dideklarasikan dengan parameter sageset, menjalankan semua handler yang dipilih di profil tersebut.
Nilai StateFlags generik ditulis ke registri ketika Pembersihan Disk dijalankan secara normal. Nilai ini hanya menyimpan status (dicentang atau tidak dicentang) dari handler terakhir kali disajikan sebagai opsi kepada pengguna. Ada dua kemungkinan nilai data untuk entri tersebut.
  • 0: Handler tidak dipilih.
  • 1: Handler dipilih.

Mendaftarkan Handler dengan Manajer Pembersihan Disk: Windows 2000 atau Sistem yang Lebih Baru

Menentukan teks tampilan dalam registri dapat menyulitkan untuk melokalisasi perangkat lunak. Untuk alasan ini, Windows 2000 dan Windows XP mendukung antarmuka IEmptyVolumeCache2 dengan metode inisialisasi yang disukai InitializeEx. Di bawah Windows 2000 atau yang lebih baru, upaya selalu dilakukan untuk memanggil IEmptyVolumeCache2::InitializeEx sebelum IEmptyVolumeCache::Initialize. Sistem hanya menggunakan Inisialisasi untuk menginisialisasi handler jika IEmptyVolumeCache2 tidak terekspos.

Sehubungan dengan registri, satu-satunya perbedaan di bawah Windows 2000 atau yang lebih baru adalah Anda dapat menghilangkan nilai AdvancedButtonText, Display, dan Description ketika IEmptyVolumeCache2::InitializeEx diekspos oleh handler. Nilai-nilai tersebut, yang berisi teks yang dilokalkan dengan benar, disediakan untuk manajer pembersihan disk saat memanggil InitializeEx.

Menggunakan Objek DataDrivenCleaner

Handler pembersihan disk dasar, yang disebut DataDrivenCleaner, disediakan oleh sistem operasi. Untuk menggunakan objek ini sebagai handler daripada mengimplementasikan objek Anda sendiri, gunakan CLSID {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6} sebagai nilai Default untuk subkunci handler di bawah VolumeCaches seperti yang dijelaskan dalam Mendaftarkan Handler dengan Manajer Pembersihan Disk: Umum.

DataDrivenCleaner tidak mengekspos IEmptyVolumeCache2, sehingga nilai Tampilan dan Deskripsi disediakan melalui registri. Saat mendeklarasikan string tersebut, ketahuilah bahwa ini dapat menyebabkan masalah pelokalan. Teks yang dilokalkan dapat disediakan melalui nilai PropertyBag. Nilai AdvancedButtonText diabaikan karena tidak ada UI, dan dengan demikian tidak ada tombol untuk menampilkannya, tersedia untuk handler ini.

Contoh Pendaftaran Handler Pembersihan Disk

Berikut ini menunjukkan contoh pendaftaran untuk penangan pembersihan disk yang diterapkan oleh Perusahaan Telepon. Handler ini mengimplementasikan nilai IEmptyVolumeCache dan IEmptyVolumeCache2, sehingga menyediakan nilai AdvancedButtonText, Description, dan Display jika digunakan pada komputer yang menjalankan Windows 98. Handler menggabungkan nilai CSIDL dan Folder untuk mencari file di direktori C:\Program Files\The Phone Company\Temp, dan bendera DDEVCF_DOSUBDIRS diatur sehingga subdirektorinya juga dicari. Hanya file dengan ekstensi .tmp dan .tpc yang dipertimbangkan untuk pembersihan, dan bendera DDEVCF_PRIVATE_LASTACCESS diatur sehingga keluar dari file tersebut, hanya file yang belum diakses selama 14 hari atau lebih yang dipertimbangkan. Bendera DDEVCF_DONTSHOWIFZERO juga diatur sehingga handler tidak muncul dalam daftar kecuali telah menemukan kandidat pembersihan.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  VolumeCaches
                     The Phone Company Files
                        (Default) = {the CLSID GUID}
                        AdvancedButtonText = &View Files
                        CleanupString = c:\tpc.exe
                        CSIDL = 0x00000026
                        Description = Old temporary files.
                        Display = The Phone Company Files
                        FileList = *.tmp|*.tpc
                        Flags = 0x10000021
                        Folder = \The Phone Company\Temp
                        IconPath = c:\Program Files\The Phone Company\tpc.dll,2
                        LastAccess = 0x0000000e
                        Priority = 200
                        PropertyBag = {Property Bag CLSID GUID}