Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jednym z aksjomatów wielokrotnie potwierdzonych w świecie komputerów jest to, że niezależnie od pojemności dysku twardego twojego komputera, ostatecznie go zapełnisz. Podczas gdy średni rozmiar dysku twardego komputera znacznie wzrósł wraz z upływem czasu, aplikacje również wzrosły odpowiednio, pozostawiając użytkowników poszukujących sposobów na utworzenie większej ilości wolnego miejsca na dysku twardym. Dostępne miejsce jest również zmniejszane przez wiele plików tymczasowych tworzonych przez aplikacje na potrzeby tworzenia kopii zapasowych lub wydajności. Gdy miejsce na dysku stanie się niskie, konieczne staje się zmniejszenie ilości miejsca używanego przez aplikacje. Miejsce na dysku można zwolnić przy użyciu różnych środków, w tym następujących:
- Usuwanie plików.
- Kompresowanie plików.
- Przenoszenie plików na nośnik kopii zapasowej.
- Transferowanie plików do serwera zdalnego.
Pliki, które są dobrymi kandydatami do czyszczenia, to:
- Pliki, których użytkownik nigdy nie będzie potrzebował ponownie.
- Pliki tymczasowe, które istnieją tylko ze względu na wydajność.
- Pliki, które można przywrócić, w razie potrzeby, z dysku CD instalacji.
- Pliki danych, które prawdopodobnie zostały zastąpione przez nowsze wersje, takie jak stare pliki kopii zapasowej.
- Starsze pliki, które nie były używane przez długi czas.
Usunięcie jest szczególnie odpowiednie w przypadku plików, których użytkownik nigdy nie będzie potrzebował ponownie, na przykład plików tymczasowo buforowanych ze względu na wydajność. Usunięcie jest również odpowiednie dla plików, które można łatwo przywrócić, takich jak pliki graficzne, które można ponownie załadować z dysku CD instalacji. Pliki, których użytkownik może potrzebować później lub które byłyby trudne do odtworzenia, są lepszymi kandydatami do kompresji lub kopii zapasowej.
Oczekiwanie, że użytkownik ręcznie wyczyści system plików, nie jest dobrym rozwiązaniem. Użytkownik może nie wiedzieć, gdzie znajduje się wiele plików lub jak rozpoznać, które z nich można bezpiecznie usunąć. Ponadto istnieje ryzyko, że użytkownik może usunąć niezbędne pliki.
W tym temacie omówiono następujące aspekty narzędzia oczyszczania dysku.
- narzędzia oczyszczania dysku systemu Windows
- Podstawowe informacje dotyczące implementacji
-
rejestrowanie programu obsługi oczyszczania dysku
- Rejestrowanie identyfikatora CLSID programu obsługującego
- zarejestrowanie programu obsługi za pomocą Menedżera oczyszczania dysku: ogólne
- zarejestrowanie programu obsługi za pomocą Menedżera oczyszczania dysku: systemy Windows 2000 lub nowsze
- Używanie obiektu DataDrivenCleaner
- przykładowa rejestracja programu obsługi oczyszczania dysku
Narzędzie oczyszczania dysku systemu Windows
Począwszy od systemu Windows 98, system operacyjny Windows zawiera Oczyszczanie dysku, narzędzie, które znacznie ułatwia użytkownikowi zarządzanie dostępnym miejscem na dysku twardym. Narzędzie oczyszczania dysku zostało zaprojektowane tak, aby zwolnić jak najwięcej miejsca na dysku i zmniejszyć ryzyko przypadkowego usunięcia przez użytkownika niezbędnych plików.
Oczyszczanie dysku można zainicjować na trzy sposoby.
- Użytkownik może zainicjować oczyszczanie dysku, klikając pozycję Uruchom; wskazując na Wszystkie Programy, Akcesoriai Narzędzia systemowe; a następnie klikając Oczyszczanie dysku.
- System powiadamia użytkownika z polem komunikatu, że nieużywane miejsce na dysku osiągnęło tryb krytyczny. Próg trybu krytycznego dla dysku większego niż 2,25 gigabajtów (GB) wynosi 200 megabajtów (MB). Kolejne ostrzeżenia są wyświetlane na poziomie 80, 50 i 1 MB. Użytkownik ma możliwość ręcznego zwalniania miejsca na dysku lub uruchamiania narzędzia oczyszczania dysku.
- Użytkownik może mieć Kreatora zaplanowanego zadania systemu Windows (znanego jako Kreator konserwacji w starszych systemach), dzięki któremu narzędzie oczyszczania dysku jest uruchamiane automatycznie w zaplanowanych godzinach.
Podstawowym wyzwaniem związanym z oczyszczaniem dysku jest zwolnienie jak największej ilości miejsca na dysku bez usuwania podstawowych plików. Ponieważ nie ma standardowego sposobu oznaczania plików do usunięcia, żadna jedna aplikacja nie może niezawodnie wykrywać i czyścić wszystkich zbędnych plików. Narzędzie oczyszczania dysku rozwiązuje ten problem, dzieląc operację oczyszczania między jednym menedżerem oczyszczania dysku a kolekcją procedur oczyszczania dysku .
Po uruchomieniu narzędzia Oczyszczanie dysku użytkownik zobaczy następujące okno dialogowe. (Jeśli na komputerze istnieje więcej niż jeden dysk lub partycja dysku, użytkownik zostanie poproszony o wybranie dysku przed wyświetleniem tego okna dialogowego).
Menedżer oczyszczania dysku jest częścią systemu operacyjnego. Wyświetla okno dialogowe pokazane na poprzedniej ilustracji, obsługuje dane wejściowe użytkownika i zarządza operacją oczyszczania. Rzeczywiste zaznaczenie i czyszczenie niepotrzebnych plików odbywa się przez poszczególne programy obsługi oczyszczania dysku wyświetlane w polu listy menedżera oczyszczania dysku. Użytkownik ma możliwość włączania lub wyłączania poszczególnych procedur obsługi przez wybranie lub wyczyszczenie pola wyboru w interfejsie użytkownika menedżera oczyszczania dysku.
Każda procedura obsługi jest odpowiedzialna za dobrze zdefiniowany zestaw plików. Na przykład wybrana procedura obsługi na ilustracji jest odpowiedzialna za czyszczenie pobranych plików programu. Procedura obsługi wybrana na ilustracji zawiera również przycisk Wyświetl pliki. Klikając przycisk, użytkownik może zażądać, aby program obsługi wyświetlał interfejs użytkownika zazwyczaj okno Eksploratora Windows, które umożliwia użytkownikowi określenie, które pliki lub klasy plików mają być czyszczone.
Mimo że system Windows zawiera szereg procedur oczyszczania dysku, nie są one przeznaczone do obsługi plików tworzonych przez inne aplikacje. Zamiast tego menedżer oczyszczania dysku został zaprojektowany tak, aby był elastyczny i rozszerzalny, umożliwiając każdemu deweloperowi zaimplementowanie i zarejestrowanie własnej procedury obsługi oczyszczania dysku. Każdy deweloper może rozszerzyć dostępne usługi oczyszczania dysku, implementując i rejestrując procedurę obsługi oczyszczania dysku.
Wszystkie aplikacje, które tworzą pliki tymczasowe, mogą i powinny implementować i rejestrować procedurę obsługi oczyszczania dysku. Dzięki temu użytkownicy mogą wygodnie i niezawodnie zarządzać plikami tymczasowymi aplikacji. Gdy implementujesz obsługę, możesz zdecydować, które pliki zostaną objęte i określić, jak przeprowadza się faktyczne czyszczenie.
Podstawy implementacji
Procedury obsługi oczyszczania to obiekty modelu obiektów składników serwera przetwarzania (COM). System Windows udostępnia istniejący obiekt obsługi o nazwie DataDrivenCleaner do użycia. Możesz również zdecydować się na samodzielne zaimplementowanie obsługi w celu uzyskania większej elastyczności. Następnie te obiekty umożliwiają określenie sposobu wybierania plików, wolnego miejsca na dysku i, w przypadku zaimplementowanego programu obsługi, wyświetlania opcjonalnego interfejsu użytkownika w celu uzyskania bardziej szczegółowej kontroli. Ta sekcja dotyczy kwestii implementowania własnej obsługi. Aby uzyskać szczegółowe informacje dotyczące korzystania z obiektu DataDrivenCleaner, zobacz Using the DataDrivenCleaner Object.
Procedura obsługi oczyszczania dysku powinna wykonywać te pięć podstawowych zadań.
- Zainicjuj obiekt obsługi.
- Przeskanuj dysk, aby określić ilość wolnego miejsca na dysku.
- Wyświetl interfejs użytkownika, aby uzyskać opinie użytkowników na temat plików do oczyszczenia. (Opcjonalnie)
- Wykonaj oczyszczanie.
- Wyłącz
Aby umożliwić menedżerowi oczyszczania dysku zarządzanie tymi zadaniami, program obsługi musi wyeksportować IEmptyVolumeCache dla systemu Windows 98 lub IEmptyVolumeCache2 dla systemu Windows Millennium Edition (Windows Me), Windows 2000 i Windows XP. Ponieważ IEmptyVolumeCache2 dziedziczy z IEmptyVolumeCache, a jedynym dodatkiem jest dodatkowa metoda InitializeEx, względnie niewiele dodatkowej pracy potrzeba, aby zaimplementować oba te elementy. Jeśli program obsługi nie jest przeznaczony tylko dla jednego z tych systemów operacyjnych, powinien wyeksportować oba interfejsy.
Aby wyeksportować te interfejsy, należy zaimplementować te metody odpowiadające pięciu podstawowych zadań.
- inicjowanie/InitializeEx
- GetSpaceUsed
- PokażWłaściwości
- czyszczenie
- Dezaktywuj
Inicjowanie/InitializeEx
Dwie metody inicjowania, które są dość podobne, są wywoływane po uruchomieniu narzędzia Oczyszczanie dysku. Menedżer oczyszczania dysku systemu Windows 98 wywołuje metodę IEmptyVolumeCache::Initialize. Menedżer czyszczenia dysku w systemach Windows Millennium Edition (Windows Me), Windows 2000 lub Windows XP najpierw próbuje wywołać IEmptyVolumeCache2::InitializeEx, a korzysta z IEmptyVolumeCache::Initialize tylko wtedy, gdy IEmptyVolumeCache2 nie jest obsługiwany przez program obsługi. Menedżer oczyszczania dysku przekazuje informacje do metody, takie jak klucz rejestru obsługującego i wolumin dysku, który ma zostać oczyszczony.
Metoda może zwracać różne ciągi wyświetlane i ustawiać co najmniej jedną flagę. Podstawową różnicą między dwiema metodami jest sposób obsługi tekstu wyświetlanego w menedżerze oczyszczania dysku. Dotyczy to następujących trzech ciągów.
| Struna | Cel | Zainicjować | InitializeEx |
|---|---|---|---|
| Nazwa wyświetlana | Nazwa obsługującego wyświetlana w polu listy menedżera oczyszczania dysku. | Jeśli ppwszDisplayName jest NULL, wartość domyślna zostanie pobrana z rejestru. | Poprawnie zlokalizowany ciąg musi być określony w ppwszDisplayName nie są używane żadne wartości rejestru. |
| Opis | Tekst opisowy wyświetlany poniżej pola listy po wybraniu nazwy obsługującego. | Jeśli ppwszDescription jest NULL, wartość domyślna zostanie pobrana z rejestru. | Poprawnie zlokalizowany ciąg musi być określony w ppwszDescription nie są używane żadne wartości rejestru. |
| Tekst przycisku | Tekst opcjonalnego przycisku, który umożliwia użytkownikom wyświetlanie interfejsu użytkownika obsługującego program. | Brak dostępnego parametru. Należy określić w rejestrze. | Poprawnie zlokalizowany ciąg musi być określony w ppwszBtnText nie są używane żadne wartości rejestru. |
Parametr pdwFlags znaleziony w obu metodach inicjowania rozpoznaje ten sam zestaw flag. Dwie z tych flag są przekazywane do metody przez menedżera oczyszczania dysku.
EVCF_SETTINGSMODE
Jeśli menedżer oczyszczania dysku jest uruchamiany zgodnie z harmonogramem, ustawia flagę EVCF_SETTINGSMODE. Jeśli ta flaga jest ustawiona, menedżer oczyszczania dysku nie wywołuje GetSpaceUsed, Purgelub ShowProperties. Metoda Initialize lub InitializeEx musi obsługiwać wszystkie zadania, które zwykle wykonują GetSpaceUsed oraz Purge. Ponieważ nie ma możliwości przesyłania opinii użytkowników, należy dotknąć tylko tych plików, które są bardzo bezpieczne do oczyszczenia. Należy zignorować parametr pcwszVolume metody inicjalizacji i wyczyścić niepotrzebne pliki bez względu na dysk, na którym się znajdują.
EVCF_OUTOFDISKSPACE
Jeśli flaga EVCF_OUTOFDISKSPACE jest ustawiona, na dysku użytkownika brakuje krytycznie miejsca. Procedura obsługi powinna być agresywna w przypadku usuwania plików, nawet jeśli spowoduje to utratę wydajności. Jednak program obsługi oczywiście nie powinien usuwać plików, które mogłyby spowodować niepowodzenie aplikacji lub utratę danych przez użytkownika.
Pozostałe flagi są ustawiane przez program obsługi oczyszczania dysku i zwracane do menedżera oczyszczania dysku. Aby uzyskać więcej informacji, zobacz strony referencyjne metody dla IEmptyVolumeCache::Initialize i IEmptyVolumeCache2::InitializeEx.
EVCF_DONTSHOWIFZERO
Wyświetl handler w polu listy menedżera oczyszczania dysku tylko wtedy, gdy wartość zwrócona przez GetSpaceUsed wskazuje, że handler może zwolnić miejsce na dysku.
EVCF_ENABLEBYDEFAULT
Określa, że program obsługi jest domyślnie włączony. Zostanie on uruchomiony za każdym razem, gdy zostanie wykonane oczyszczanie dysku, chyba że użytkownik go wyłączy, usuwając jego pole wyboru na liście programów obsługi menedżera oczyszczania dysku.
EVCF_WŁĄCZONY_DOMYŚLNIE_AUTO
Określa, że procedura obsługi jest automatycznie włączana do działania podczas zaplanowanych oczyszczeń.
EVCF_HASSETTINGS
Ustaw tę flagę, jeśli program obsługi ma interfejs użytkownika do wyświetlenia. W odpowiedzi menedżer oczyszczania dysku wyświetla przycisk po wybraniu tej procedury obsługi w polu listy. Jeśli ten przycisk zostanie kliknięty, menedżer oczyszczania dysku wywołuje ShowProperties.
EVCF_REMOVEFROMLIST
Usuń nazwę obsługi z listy dostępnych obsług po jej jednokrotnym uruchomieniu. Informacje dotyczące rejestru programu obsługującego również są usuwane.
GetSpaceUsed
Menedżer oczyszczania dysku wywołuje tę metodę, aby określić, ile miejsca może potencjalnie zwolnić program obsługi oczyszczania dysku. Następnie menedżer oczyszczania dysku wyświetla tę wartość po prawej stronie nazwy obsługującego w polu listy. Ta operacja jest wykonywana na wszystkich programach obsługi zarejestrowanych w menedżerze oczyszczania dysku po uruchomieniu menedżera i przed wyświetleniem głównego interfejsu użytkownika menedżera. Po wywołaniu GetSpaceUsed, program obsługi powinien przeskanować pliki, za które jest odpowiedzialny, określić, które z nich są kandydatami do czyszczenia, i zwrócić ilość miejsca na dysku, które może zwolnić.
Ponieważ skanowanie może być długotrwałym procesem, narzędzie do czyszczenia dysku używa parametru picb, aby przekazać wskaźnik do interfejsu IEmptyVolumeCacheCallBack. Procedura obsługi używa interfejsu okresowo podczas skanowania w celu wywołania IEmptyVolumeCacheCallBack::ScanProgress, który służy dwóm celom.
- Umożliwia menedżerowi oczyszczania dysku zaktualizowanie paska postępu, informując użytkownika o postępie skanowania.
- Powiadamia program obsługi o zatrzymaniu skanowania, gdy zostanie kliknięty przycisk Anuluj w oknie postępu. To zdarzenie przycisku nie jest przekazywane bezpośrednio do programu obsługi; zamiast tego menedżer oczyszczania dysku zwraca E_ABORT przy następnym wywołaniu GetSpaceUsed, które inicjuje IEmptyVolumeCacheCallBack::ScanProgress.
Pokaż właściwości
Przed rozpoczęciem oczyszczania program obsługi może wyświetlić interfejs użytkownika zazwyczaj w postaci okna Eksploratora Windows, które umożliwia użytkownikowi wyświetlenie listy plików lub klas plików wybranych do czyszczenia przez program obsługi. Jeśli program obsługi ustawia flagę EVCF_HASSETTINGS podczas wywoływania Initialize lub InitializeEx, użytkownik może uzyskać dostęp do interfejsu użytkownika, klikając przycisk wyświetlany w tym celu w Menedżerze oczyszczania dysku. Tekst przycisku różni się w zależności od programu obsługi, ale "Wyświetl pliki", "Wyświetl strony" i "Opcje" są typowymi etykietami.
Po kliknięciu przycisku menedżer oczyszczania dysku wywołuje ShowProperties, aby spowodować wyświetlenie interfejsu użytkownika przez program obsługi. Interfejs użytkownika należy utworzyć jako element podrzędny okna, którego uchwyt jest przekazywany w parametrze ShowProperties metody hwnd.
Czystka
Menedżer oczyszczania dysku wywołuje metodę Purge programu obsługi, aby rozpocząć proces oczyszczania. Parametr picb metody jest wskaźnikiem do interfejsu menedżera oczyszczania dysku IEmptyVolumeCacheCallBack. Podobnie jak w przypadku metody GetSpaceUsed, program obsługi powinien okresowo używać interfejsu wywołania zwrotnego, aby zgłosić postęp i wysłać zapytanie do menedżera oczyszczania dysku, czy użytkownik kliknął Anuluj. Należy jednak pamiętać, że metoda Purge musi wywołać metodę IEmptyVolumeCacheCallBack::PurgeProgress, a nie ScanProgress.
Dezaktywować
Metoda Dezaktywuj zostaje wywoływana, gdy menedżer oczyszczania dysku przygotowuje się do wyłączenia. Procedura obsługi powinna wykonywać wszelkie wymagane zadania oczyszczania i zwracać. Jeśli nie chcesz, aby program obsługi był uruchamiany ponownie, ustaw flagę EVCF_REMOVEFROMLIST w parametrze pdwFlags metody inicjowania. Jeśli ta flaga jest ustawiona, menedżer oczyszczania dysku usuwa program obsługi z listy i usuwa wpisy rejestru programu obsługi. Aby ponownie uruchomić procedurę obsługi, należy ponownie dodać wpisy rejestru. Ta flaga jest zwykle używana w przypadku programów obsługi, które są uruchamiane tylko raz.
Rejestrowanie programu obsługi oczyszczania dysku
Aby dodać procedurę obsługi do listy menedżera oczyszczania dysku, niektóre klucze i wartości muszą zostać dodane do rejestru systemu Windows.
- Rejestrowanie identyfikatora CLSID obsługującego
- Zarejestrowanie modułu obsługującego za pomocą Menedżera oczyszczania dysku: Ogólne
- zarejestrowanie programu obsługi za pomocą Menedżera oczyszczania dysku: systemy Windows 2000 lub nowsze
- Używanie obiektu DataDrivenCleaner
- przykładowa rejestracja programu obsługi oczyszczania dysku
Rejestrowanie identyfikatora CLSID obsługującego
Podobnie jak we wszystkich obiektach COM, identyfikator GUID i biblioteka DLL obiektu obsługującego muszą być zarejestrowane w ramach klucza CLSID w HKEY_CLASSES_ROOT. Możesz również zarejestrować ikonę wyświetlaną obok nazwy obsługującego na liście menedżera oczyszczania dysku, ale jest to opcjonalne. W poniższym przykładzie pokazano klucze, wartości i dane.
HKEY_CLASSES_ROOT
CLSID
Handler's GUID
DefaultIcon
(Default) = Handler's Icon Path, Icon Index
InprocServer32
(Default) = Handler's DLL path
ThreadingModel = Apartment
Rejestrowanie programu obsługi za pomocą Menedżera oczyszczania dysku: Ogólne
Aby ukończyć rejestrację, obsługujący musi dodać klucz przechowujący jego szczegóły, jak pokazano tutaj. W pozostałej części tej sekcji omówiono zawartość tego klucza.
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Explorer
VolumeCaches
Handler's Key
Ogólnie rzecz biorąc, nazwa klucza zawierającego szczegóły obsługi jest zazwyczaj związana z typem pliku, który obsługuje, na przykład Pobrane pliki programu, ale nie jest to wymogiem. Poniższa tabela zawiera szczegółowe informacje o możliwych wartościach znalezionych w tym kluczu.
Notatka
Tylko wartość domyślna, określająca identyfikator klasy obsługującego (CLSID), jest wymagana, wszystkie inne wartości są opcjonalne.
| Wartość | Typ | Znaczenie |
|---|---|---|
| Domyślny | REG_SZ | Identyfikator CLSID programu obsługi zarejestrowany w HKEY_CLASSES_ROOT\CLSID. |
| ZaawansowanyTekstPrzycisku | REG_SZ | Tekst opcjonalnego przycisku, który użytkownicy mogą kliknąć, aby wyświetlić interfejs obsługi. Znak & można umieścić przed znakiem w celu przypisania skrótu klawiaturowego dla przycisku. Wartość AdvancedButtonText jest ignorowana przez procedury obsługi odsłaniające IEmptyVolumeCache2::InitializeEx. |
| CleanupString | REG_SZ | Wiersz polecenia określający plik wykonywalny i opcjonalne parametry wiersza polecenia. Ten wiersz polecenia jest uruchamiany po zakończeniu oczyszczania dysku. |
| CSIDL | REG_DWORD | Identyfikator niezależny od systemu dla folderu specjalnego do uwzględnienia w wyszukiwaniu plików. Ta wartość musi zostać wprowadzona jako wartość liczbowa, na przykład 0x0000001c, a nie CSIDL_LOCAL_APPDATA. Aby uzyskać listę możliwych wartości, zobacz CSIDL. Można użyć tylko jednej wartości. Jeśli określono wartość Folder, lokalizacja wskazywana przez wartość CSIDL jest poprzedzona tą informacją w celu utworzenia ścieżki wyszukiwania. Rozważmy na przykład następujący scenariusz.
|
| Opis | REG_SZ | Tekst opisowy wyświetlany poniżej pola listy menedżera oczyszczania dysku, gdy wybrana jest nazwa obsługującego. W tym miejscu możesz wyjaśnić, co robi program obsługi, jakie pliki go dotyczą, oraz wszelkie inne informacje przydatne dla użytkownika. Jeśli IEmptyVolumeCache2::InitializeEx nie jest uwidoczniona przez program obsługi, ten tekst może zostać zastąpiony za pomocą metody IEmptyVolumeCache::Initialize, określając alternatywny ciąg w parametrze ppwszDescription podczas jej wywoływania. |
| Wyświetlać | REG_SZ | Nazwa obsługującego, która ma być wyświetlana na liście menedżera oczyszczania dysku. Jeśli IEmptyVolumeCache2::InitializeEx nie jest udostępniona przez program obsługi, ten tekst można zastąpić za pomocą metody IEmptyVolumeCache::Initialize, poprzez określenie alternatywnego ciągu znaków w parametrze ppwszDisplayName w momencie wywołania metody. |
| Lista plików | REG_SZ lub REG_MULTI_SZ | Lista plików wyszukiwanych i czyszczonych przez tę procedurę obsługi. Możesz określić symbole wieloznaczne przy użyciu znaku ? lub * znaki. Jeśli wartość jest typu REG_SZ, wiele rozszerzeń jest rozdzielanych za pomocą znaków | lub :, bez spacji po obu ich stronach. Jeśli flaga DDEVCF_REMOVEDIRS jest ustawiona w wartości Flags, te wartości mogą określać nazwy katalogów, a także pliki. |
| Flagi | REG_DWORD lub REG_BINARY | Flagi kontrolujące elementy procedury wyszukiwania i czyszczenia. Co najmniej jedna z poniższych wartości.
|
| Folder | REG_SZ, REG_MULTI_SZ lub REG_EXPAND_SZ | Określony folder lub foldery do wyszukiwania elementów pasujących do wpisów w wartości FileList. Możesz określić symbole wieloznaczne przy użyciu znaku ? lub * znaki. Jeśli wartość jest typu REG_SZ, wiele nazw folderów jest rozdzielonych z użyciem znaku |, bez spacji z obu stron. Jeśli wartość CSIDL jest obecna, w tej wartości można określić tylko jeden folder. Lokalizacja wskazywana przez wartość CSIDL jest dodawana na początku ścieżki folderu, aby utworzyć ścieżkę wyszukiwania. Przykład można znaleźć w opisie wartości CSIDL. Jeśli ta wartość jest nieobecna w systemie Windows Vista z dodatkiem Service Pack 1 (SP1) lub nowszym, procedura obsługi oczyszczania jest ignorowana i zwraca S_FALSE podczas inicjowania. Jeśli ta wartość jest nieobecna w oryginalnej wersji systemu Windows Vista i starszych, używany jest folder główny bieżącego woluminu. Flaga DDEVCF_DOSUBDIRS jest wymagana w tym przypadku, aby przeszukać cały dysk. Bez niego przeszukiwany jest tylko sam folder główny. Należy podać dysk lub dyski. Można to udostępnić za pomocą wartości CSIDL lub ciągu REG_EXPAND_SZ. Jeśli te opcje nie są dostępne, dysk, który ma być przeszukiwany, musi być wskazany w nazwie folderu. Użyj polecenia ?: aby wyszukać folder na bieżącym dysku. |
| IconPath | REG_SZ lub REG_EXPAND_SZ | Ścieżka do zasobu, z którego można uzyskać ikonę do użycia z programem obsługi. |
| Ostatni dostęp | REG_DWORD lub REG_BINARY | Liczba dni, które muszą upłynąć od czasu ostatniego uzyskania dostępu do pliku lub utworzenia katalogu, aby plik lub katalog mogły zostać rozważone do wyczyszczenia. |
| Priorytet | REG_DWORD lub REG_BINARY | Określa kolejność uruchamiania programu obsługi w odniesieniu do innych procedur obsługi. Im większa liczba, tym wcześniej w procesie uruchamiana jest procedura obsługi. Nie ma zdefiniowanego zakresu, każda liczba jest akceptowalna. |
| PropertyBag | REG_SZ | Identyfikator CLSID zasobu używanego do podawania zlokalizowanego tekstu dla nazwy wyświetlanej, opisu i tekstu przycisku. Ten zasób jest przydatny w sytuacji, gdy program obsługi nie implementuje IEmptyVolumeCache, a jest uruchamiany w systemie Microsoft Windows NT lub Windows XP. Menedżer oczyszczania dysku najpierw sprawdza, czy procedura inicjowania programu obsługi zwróciła te ciągi, tak jak w przypadku implementacji IEmptyVolumeCache2. W przeciwnym razie menedżer przechodzi do kontenera właściwości o nazwie wskazanej w tej wartości. Jeśli żaden z nich nie został podany, pobiera tekst z rejestru. |
| Flagi stanowe | REG_DWORD | Uruchamiając plik wykonywalny menedżera oczyszczania dysku Cleanmgr.exe z wiersza polecenia, można zadeklarować czyszczenie profilów . Te profile składają się z podzbioru dostępnych mechanizmów i otrzymują unikatową etykietę liczbową. Dzięki temu można zautomatyzować uruchamianie różnych zestawów procedur obsługi w różnym czasie. Wiersz polecenia "cleanmgr.exe /sageset:nnnn", gdzie nnnn jest unikatową etykietą liczbową, wyświetla interfejs umożliwiający wybranie modułów obsługi, które mają zostać uwzględnione w tym profilu. Oprócz definiowania profilu, parametr sageset zapisuje również wartość o nazwie StateFlagsnnnn, gdzie nnnn jest etykietą użytą w parametrze, do wszystkich podkluczy w VolumeCaches. Istnieją dwie możliwe wartości danych dla tych wpisów.
Załóżmy na przykład, że wiersz polecenia "cleanmgr.exe /sageset:1234" zostaje uruchomiony. W wyświetlonym interfejsie użytkownika użytkownik wybiera opcję Pobrane pliki programu, ale nie wybiera opcji Tymczasowe pliki internetowe. Następujące wartości są następnie zapisywane w rejestrze.
Wiersz polecenia "cleanmgr.exe /sagerun:nnnn", gdzie wartość nnnn pasuje do etykiety zadeklarowanej z parametrem sageset, uruchamia wszystkie programy obsługi wybrane w tym profilu. Ogólna wartość StateFlags jest zapisywana w rejestrze, gdy oczyszczanie dysku jest uruchamiane normalnie. Ta wartość przechowuje stan (zaznaczone lub niezaznaczone) obsługiwanego elementu ostatnim razem, gdy został przedstawiony użytkownikowi jako opcja. Istnieją dwie możliwe wartości danych dla tych wpisów.
|
Rejestrowanie programu obsługi za pomocą Menedżera oczyszczania dysku: System Windows 2000 lub nowszy
Określanie tekstu wyświetlanego w rejestrze może utrudnić lokalizowanie oprogramowania. Z tego powodu systemy Windows 2000 i Windows XP obsługują interfejs IEmptyVolumeCache2 z preferowaną metodą inicjowania InitializeEx. W systemie Windows 2000 lub nowszym zawsze podejmuje się próbę wywołania IEmptyVolumeCache2::InitializeEx przed IEmptyVolumeCache::Initialize. System używa tylko Initialize do inicjowania obsługiwacza, jeśli IEmptyVolumeCache2 nie jest udostępniony.
W odniesieniu do rejestru jedyną różnicą w systemie Windows 2000 lub nowszym jest to, że można pominąć wartości AdvancedButtonText, Display i Description, gdy IEmptyVolumeCache2::InitializeEx jest uwidoczniony przez program obsługi. Te wartości, zawierające poprawnie zlokalizowany tekst, są dostarczane do menedżera oczyszczania dysku, gdy wywołuje InitializeEx.
Korzystanie z obiektu DataDrivenCleaner
Podstawowy program obsługi oczyszczania dysku o nazwie DataDrivenCleaner jest dostarczany przez system operacyjny. Aby użyć tego obiektu jako programu obsługi zamiast implementowania własnego, użyj identyfikatora CLSID {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6} jako wartości domyślnej dla podklucza programu obsługi w obszarze VolumeCaches zgodnie z opisem w Rejestrowanie programu obsługi za pomocą Menedżera Oczyszczania Dysku: Ogólne.
DataDrivenCleaner nie uwidacznia IEmptyVolumeCache2, więc wartości Display i Description są udostępniane za pośrednictwem rejestru. Podczas deklarowania tych ciągów należy pamiętać, że może to spowodować problemy z lokalizacją. Zlokalizowany tekst można podać za pomocą wartości PropertyBag. Wartość AdvancedButtonText jest ignorowana, ponieważ nie ma interfejsu użytkownika, a tym samym brak przycisku do jej wyświetlenia dla tego procesora.
Przykładowa rejestracja programu obsługi oczyszczania dysku
Poniżej przedstawiono przykładową rejestrację obsługi oczyszczania dysku zaimplementowaną przez Firmę telefoniczną. Ta procedura obsługi implementuje zarówno IEmptyVolumeCache, jak i IEmptyVolumeCache2, dzięki czemu udostępnia wartości AdvancedButtonText, Description i Display, w przypadku jego użycia na komputerze z systemem Windows 98. Procedura obsługi łączy wartości CSIDL i Folder, aby wyszukać pliki w katalogu C:\Program Files\The Phone Company\Temp, a flaga DDEVCF_DOSUBDIRS jest ustawiona tak, aby jego podkatalogi również zostały przeszukane. Uwzględniane są tylko te pliki z rozszerzeniami .tmp i .tpc, a flaga DDEVCF_PRIVATE_LASTACCESS jest ustawiona tak, aby z tych plików były uwzględniane tylko te, do których nie uzyskiwano dostępu przez 14 dni lub więcej. Flaga DDEVCF_DONTSHOWIFZERO jest również ustawiona tak, aby program obsługi nie był wyświetlany na liście, chyba że znalazł kandydatów do czyszczenia.
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}