Статьи Королевства Дельфи

         

Подготовка Windows Explorer к работе под отладчиком


Носителем функциональности Shell является приложение Windows Explorer. Вы можете увидеть на экране своего компьютера такие объекты, как Desktop, Taskbar, окна папок файловой системы. Все это реализовано приложением Windows Explorer, и Вы можете увидеть это приложение в Task Manager.

Сопоставленный ему процесс называется Explorer.exe. Там же вы можете увидеть, что у вас иногда запущено несколько экземпляров этого процесса. Не удивляйтесь - все дело в настройках Windows, что и будет показано далее.

Windows Shell автоматически выгружает динамическую библиотеку, когда внутренний счетчик её использования равен нулю, но это происходит только по истечении определенного периода времени. Это сделано для ускорения работы оболочки, но не всегда удобно при написании и отладке Shell extensions в пределах одной операционной системы - при компиляции уже зарегистрированного Shell extension его файл может оказаться заблокированным для записи. Для операционных систем версий ниже Windows 2000 вы можете уменьшить этот период с помощью добавления нижеследующей (following) информации в реестр: HKLM Software Microsoft Windows CurrentVersion Explorer AlwaysUnloadDll Не забывайте отключать эту возможность после завершения отладочных работ над вашим Shell extension, так как она плохо сказывается на производительности Windows.

В любой операционной системе можно применить следующий метод для запуска Windows Shell под отладкой:

  • Загрузите в Delphi проект для отладки.
  • Из меню кнопки "Пуск" выберите пункт "Завершение работы".
  • Нажмите одновременно кнопки CTRL+ALT+DEL и щелкните по кнопке "No" в диалоге "Завершение работы с Windows". В операционной системе Windows 2000 щелкните на кнопке "Cancel". В результате Shell должна выгрузиться из памяти компьютера (исчезнут Task Bar, иконки с рабочего стола и открытые окна с содержимым папок и дисков), но все остальные приложения останутся работать, влючая Delphi с вашим проектом.
Выполните все настройки, необходимые для отладки Shell extensions и запустите отладчик. Shell должна стартовать как обычно, но сейчас она будет работать под управлением отладчика.

При отладке Shell extensions под управлением Windows NT/2000/XP вы можете настроить запуск нескольких экземпляров Windows Explorer (отдельный экземпляр под Task Bar, под каждое окно с содержимым папок или дисков). В результате вы сможете отлаживать ваши Shell extensions не выгружая при этом Task Bar и Desktop, что намного удобнее. Чтобы включить эту возможность вы должны добавить нижеследующую информацию в реестр:

HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ DesktopProcess(REG_DWORD) = 1 Чтобы это значение начало действовать вы должны выполнить Log off и затем Log on. Не забывайте отключать эту возможность после завершения отладочных работ над вашим Shell extension, так как она плохо сказывается на производительности Windows.



Содержание  Назад  Вперед