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.
W tym temacie opisano sposób debugowania bibliotek DLL rozszerzeń powłoki i rozszerzeń namespace.
- uruchamianie powłoki w debuggerze
- Uruchamianie i testowanie rozszerzeń powłoki
- Zwalnianie biblioteki DLL
Uruchamianie powłoki systemowej w debugerze
Aby debugować rozszerzenie, należy uruchomić powłokę za pomocą debugera. Wykonaj następujące kroki:
Załaduj projekt rozszerzenia do debugera, ale nie uruchamiaj go.
Zamknij powłokę.
- W przypadku systemu Windows Vista i nowszych:
- Wyświetl menu Start.
- Naciśnij klawisze CTRL+SHIFT i kliknij prawym przyciskiem myszy na tle prawej połowy menu Start.
- Z wyświetlonego menu wybierz pozycję Zamknij Eksplorator.
- W przypadku systemu Windows XP:
- Z menu Start wybierz Zamknij.
- Naciśnij CTRL+ALT+SHIFT, a następnie kliknij przycisk Nie w oknie dialogowym Zamykanie systemu Windows .
Powłoka jest teraz zamknięta, ale wszystkie inne aplikacje są nadal uruchomione, w tym debuger.
- W przypadku systemu Windows Vista i nowszych:
Ustaw debuger, aby uruchomić pliki DLL rozszerzenia z Explorer.exe z katalogu Windows .
Uruchom projekt z debugera. Powłoka uruchomi się jak zwykle, ale debuger będzie podłączony do procesu powłoki.
Uruchamianie i testowanie rozszerzeń powłokowych
Rozszerzenia można uruchamiać i testować w osobnym procesie Eksploratora Windows, aby uniknąć zatrzymywania i ponownego uruchamiania pulpitu i paska zadań. Pulpit i pasek zadań mogą być nadal używane podczas uruchamiania i testowania rozszerzeń.
Aby włączyć tę funkcję, dodaj następujący wpis REG_DWORD do rejestru.
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Explorer
DesktopProcess = 1
Aby ten wpis zaczął obowiązywać, należy wylogować się i zalogować ponownie. To ustawienie powoduje, że okna pulpitu i paska zadań zostaną utworzone w jednym procesie Explorer.exe, a wszystkie inne okna Eksploratora i folderu zostaną otwarte w innym procesie Explorer.exe.
Oprócz tego, że uruchamianie się i testowanie rozszerzeń jest wygodniejsze, to ustawienie sprawia również, że pulpit jest bardziej niezawodny w kontekście rozszerzeń powłoki. Wiele takich rozszerzeń (na przykład rozszerzeń menu skrótów) zostanie załadowanych do procesu niedesktopowego Explorer.exe. Jeśli ten proces zakończy się, pulpit i pasek zadań nie będą miały wpływu, a następne okno Eksploratora lub folderu ponownie utworzy zakończony proces.
Zwalnianie biblioteki DLL
Powłoka automatycznie zwalnia dowolną bibliotekę DLL, gdy jej liczba użycia wynosi zero, ale dopiero po tym, jak biblioteka DLL nie została użyta przez pewien czas. Okres tej nieaktywności czasami może być nieakceptowalnie długi, szczególnie w przypadku debugowania biblioteki DLL rozszerzenia powłoki. Okres nieaktywny można skrócić, dodając następujące informacje do rejestru.
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Explorer
AlwaysUnloadDll