Поделиться через


Отладка с помощью оболочки

В этом разделе объясняется, как отладить библиотеки DLL для оболочки и пространства имен.

Запуск оболочки в отладчике

Для отладки расширения необходимо запустить оболочку из отладчика. Выполните указанные ниже действия:

  1. Загрузите проект расширения в отладчик, но не запускайте его.

  2. Завершите работу оболочки.

    • Для Windows Vista и более поздних версий:
      1. Отображение меню "Пуск ".
      2. Нажмите клавиши CTRL+SHIFT и щелкните правой кнопкой мыши фон правой части меню Пуск .
      3. В появившемся меню выберите Выход Обозреватель.
    • Для Windows XP:
      1. В меню Пуск выберите Завершить работу.
      2. Нажмите клавиши CTRL+ALT+SHIFT и нажмите кнопку Нет в диалоговом окне Завершение работы Windows .

    Теперь оболочка завершает работу, но все остальные приложения по-прежнему выполняются, включая отладчик.

  3. Настройте отладчик для запуска библиотеки DLL расширения с Explorer.exe из каталога Windows .

  4. Запустите проект из отладчика. Оболочка запустится как обычно, но отладчик будет подключен к процессу оболочки.

Запуск и тестирование расширений оболочки

Вы можете запускать и тестировать расширения в отдельном процессе windows Обозреватель, чтобы избежать остановки и перезапуска рабочего стола и панели задач. Рабочий стол и панель задач по-прежнему можно использовать во время запуска и тестирования расширений.

Чтобы включить эту функцию, добавьте в реестр следующую запись REG_DWORD.

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  DesktopProcess = 1

Для вступления этой записи в силу необходимо выйти из системы и снова войти в систему. Этот параметр приводит к созданию окон рабочего стола и панели задач в одном процессе Explorer.exe, а все остальные окна Обозреватель и папок открываются в другом процессе Explorer.exe.

Этот параметр не только упрощает выполнение и тестирование расширений, но и делает рабочий стол более надежным, так как он относится к расширениям оболочки. Многие из таких расширений (например, расширения контекстного меню) будут загружены в неопределенный процесс Explorer.exe. Если этот процесс завершится, рабочий стол и панель задач не будут затронуты, а следующий Обозреватель или окно папки повторно создаст завершенный процесс.

Выгрузка библиотеки DLL

Оболочка автоматически выгружает любую библиотеку DLL, если ее количество использования равно нулю, но только после того, как библиотека DLL не использовалась в течение определенного периода времени. Этот неактивный период иногда может быть неприемлемо длительным, особенно при отладке библиотеки DLL расширения оболочки. Вы можете сократить период неактивной активности, добавив в реестр следующие сведения.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AlwaysUnloadDll