Debugging shell extension in Windows 7

后端 未结 5 1990
梦如初夏
梦如初夏 2021-02-05 16:10

I\'m trying to debug shell extension (IContextMenu) in Windows 7 with Visual C++ 2008. I have set DesktopProcess=1 in the registry and set host app to explorer.exe. But when I s

5条回答
  •  一整个雨季
    2021-02-05 16:26

    I've found a nice workflow that I think is the fastest way to rapidly iterate the code-build-test cycle when developing shell extensions. The following should work on any Windows version.

    First prepare - set the start program of your shell extension project to be c:\windows\explorer.exe and also set it to be the start-up project.

    Then, whenever you want to debug your shell extension perform the following steps:

    • Click on the task bar and press Alt-F4 - this will bring up the shut down dialog
    • Press Ctrl-Alt-Shift-Escape - this combination will close explorer.
    • Use Alt-Tab to go back to Visual Studio and press F5 - explorer will now launch with the VS debugger attached to it from the very beginning.
    • When done, just stop the debugger session. This will kill the debugged instance of explorer and will also automatically start a normal instance of it. This will also unlock the shell extension DLL so that you can build it again.

    Caveat on Vista and 7 - be sure to run the Visual Studio that you use for debugging in non-Administrator mode (non-elevated), so that the explorer is started in its usual non-elevated mode.

提交回复
热议问题