Partager via


Débogage avec l’interpréteur de commandes

Cette rubrique explique comment déboguer des DLL d’extension d’interpréteur de commandes et d’espaces de noms.

Exécution de l’interpréteur de commandes sous un débogueur

Pour déboguer votre extension, vous devez exécuter l’interpréteur de commandes à partir du débogueur. Procédez comme suit :

  1. Chargez le projet de l’extension dans le débogueur, mais ne l’exécutez pas.

  2. Arrêtez l’interpréteur de commandes.

    • Pour Windows Vista et versions ultérieures :
      1. Affichez le menu Démarrer .
      2. Appuyez sur Ctrl+Maj et cliquez avec le bouton droit sur l’arrière-plan de la moitié droite du menu Démarrer .
      3. Dans le menu qui s’affiche, choisissez Quitter Explorer.
    • Pour Windows XP :
      1. Dans le menu Démarrer , choisissez Arrêter.
      2. Appuyez sur Ctrl+Alt+Maj, puis cliquez sur Non dans la boîte de dialogue Arrêter Windows .

    L’interpréteur de commandes est maintenant arrêté, mais toutes les autres applications sont toujours en cours d’exécution, y compris le débogueur.

  3. Définissez le débogueur pour exécuter la DLL d’extension avec Explorer.exe à partir du répertoire Windows .

  4. Exécutez le projet à partir du débogueur. L’interpréteur de commandes se lance comme d’habitude, mais le débogueur est attaché au processus de l’interpréteur de commandes.

Exécution et test d’extensions shell

Vous pouvez exécuter et tester vos extensions dans un processus windows Explorer distinct pour éviter d’arrêter et de redémarrer le Bureau et la barre des tâches. Votre bureau et votre barre des tâches peuvent toujours être utilisés pendant que vous exécutez et testez les extensions.

Pour activer cette fonctionnalité, ajoutez l’entrée REG_DWORD suivante au Registre.

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  DesktopProcess = 1

Pour que cette entrée prenne effet, vous devez vous déconnecter et vous reconnecter. Ce paramètre entraîne la création des fenêtres de bureau et de la barre des tâches dans un processus Explorer.exe et l’ouverture de toutes les autres fenêtres de Explorer et de dossiers dans un autre processus Explorer.exe.

En plus de rendre l’exécution et le test de vos extensions plus pratiques, ce paramètre rend le bureau plus robuste en ce qui concerne les extensions shell. Nombre de ces extensions (extensions de menu contextuel, par exemple) seront chargées dans le processus de Explorer.exe nondesktop. Si ce processus s’arrête, le bureau et la barre des tâches ne sont pas affectés, et la fenêtre Explorer ou dossier suivante recréera le processus terminé.

Déchargement de la DLL

L’interpréteur de commandes décharge automatiquement toute DLL lorsque son nombre d’utilisation est égal à zéro, mais uniquement après que la DLL n’a pas été utilisée pendant une période donnée. Cette période d’inactivité peut parfois être inacceptable, en particulier lorsqu’une DLL d’extension Shell est en cours de débogage. Vous pouvez raccourcir la période d’inactivité en ajoutant les informations suivantes au Registre.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AlwaysUnloadDll