Compartir a través de


Depuración con shell

En este tema se explica cómo depurar archivos DLL de extensión de shell y espacio de nombres.

Ejecución del shell en un depurador

Para depurar la extensión, debe ejecutar el shell desde el depurador. Siga estos pasos:

  1. Cargue el proyecto de la extensión en el depurador, pero no lo ejecute.

  2. Apague el shell.

    • Para Windows Vista y versiones posteriores:
      1. Muestra el menú Inicio .
      2. Presione CTRL+MAYÚS y haga clic con el botón derecho en el fondo de la mitad derecha del menú Inicio .
      3. En el menú que aparece, elija Salir del Explorador.
    • Para Windows XP:
      1. En el menú Inicio , elija Apagar.
      2. Presione CTRL+ALT+MAYÚS y haga clic en No en el cuadro de diálogo Apagar Windows .

    El shell ahora se cierra, pero todas las demás aplicaciones siguen en ejecución, incluido el depurador.

  3. Establezca el depurador para ejecutar el archivo DLL de extensión con Explorer.exe desde el directorio de Windows .

  4. Ejecute el proyecto desde el depurador. El shell se iniciará de la forma habitual, pero el depurador se asociará al proceso del shell.

Ejecutar y probar extensiones de Shell

Puede ejecutar y probar las extensiones en un proceso independiente del Explorador de Windows para evitar detener y reiniciar la barra de tareas y el escritorio. El escritorio y la barra de tareas se pueden seguir usando mientras ejecuta y prueba las extensiones.

Para habilitar esta característica, agregue la siguiente entrada REG_DWORD al Registro.

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  DesktopProcess = 1

Para que esta entrada surta efecto, debe cerrar sesión e iniciar sesión de nuevo. Esta configuración hace que las ventanas de escritorio y barra de tareas se creen en un proceso de Explorer.exe y todas las demás ventanas de explorador y carpeta se abrirán en un proceso de Explorer.exe diferente.

Además de hacer que la ejecución y las pruebas de las extensiones sean más cómodas, esta configuración también hace que el escritorio sea más sólido en relación con las extensiones de Shell. Muchas de estas extensiones (extensiones de menú contextual, por ejemplo) se cargarán en el proceso de Explorer.exe nodesktop. Si finaliza este proceso, el escritorio y la barra de tareas no se verán afectados y la siguiente ventana explorador o carpeta volverá a crear el proceso terminado.

Descarga del archivo DLL

El Shell descarga automáticamente cualquier ARCHIVO DLL cuando su recuento de uso es cero, pero solo después de que el archivo DLL no se haya usado durante un período de tiempo. Este período inactivo puede ser inaceptablemente largo en ocasiones, especialmente cuando se depura un archivo DLL de extensión de Shell. Puede acortar el período inactivo agregando la siguiente información al Registro.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AlwaysUnloadDll