Отладка расширения оболочки в Windows 7 - PullRequest
13 голосов
/ 26 августа 2009

Я пытаюсь отладить расширение оболочки (IContextMenu) в Windows 7 с Visual C ++ 2008. Я установил DesktopProcess = 1 в реестре и установил приложение хоста для explorer.exe. Но когда я запускаю отладчик, он запускает explorer.exe, а затем отключается от процесса. DllMain расширения оболочки не вызывается.

Тот же код с точно такими же настройками, запущенный в отладчике без проблем в Windows XP + Visual C ++ 2008.

Есть мысли, как отладить расширение оболочки в Win7?

Ответы [ 5 ]

9 голосов
/ 07 июня 2012

Я нашел хороший рабочий процесс, который, я думаю, является самым быстрым способом быстрой итерации цикла сборки кода-кода при разработке расширений оболочки. Следующее должно работать на любой версии Windows.

Первая подготовка - задайте в качестве стартовой программы вашего расширения оболочки файл c: \ windows \ explorer.exe, а также установите его в качестве стартового проекта.

Затем, когда вы хотите отладить расширение вашей оболочки, выполните следующие шаги:

  • Нажмите на панель задач и нажмите Alt-F4 - это вызовет диалог выключения
  • Нажмите Ctrl-Alt-Shift-Escape - эта комбинация закроет проводник.
  • Используйте Alt-Tab, чтобы вернуться в Visual Studio и нажмите F5 - проводник теперь запустится с отладчиком VS, подключенным к нему с самого начала.
  • Когда закончите, просто остановите сеанс отладчика. Это уничтожит отлаженный экземпляр проводника, а также автоматически запустит его обычный экземпляр. Это также разблокирует DLL расширения оболочки, чтобы вы могли собрать ее заново.

Предостережение в Vista и 7 - обязательно запустите Visual Studio, которую вы используете для отладки в режиме без прав администратора (без повышенных прав), чтобы проводник запускался в обычном режиме без повышенных прав.

8 голосов
/ 10 сентября 2009

Попробуйте запустить проводник и затем присоединить к нему отладчик.

2 голосов
/ 29 сентября 2009

Вы можете попытаться добавить вызов DebugBreak () в свой код. Это должно запустить своевременный отладчик во время разговора и дать вам представление о том, что происходит.

0 голосов
/ 02 января 2017

Отладка Explorer.exe обычно излишне для расширений, которые работают в представлении оболочки.

Я лично использую небольшое приложение, созданное мной, в котором размещен экземпляр IExplorerBrowser , аналогичный в этом примере . Если ваш элемент IContextMenu не является элементом по умолчанию, вы можете просто использовать Notepad.exe и его диалог открытия файла ...

0 голосов
/ 30 сентября 2009

Вы должны взглянуть на gflags.exe, часть стандартных средств отладки sdk. В нем есть все параметры, необходимые для настройки (глобальных) флагов для любого запуска процесса / services / heap / pool-tagging / stacktrace's-on-selection и т. Д. ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...