Débogage des extensions de shell à l'aide de delphi
Cet article décrit les détails de débogage Shell extensions écrit avec Borland Delphi ou C Builder.
Introduction
aujourd'Hui, la programmation intégrée des environnements de Borland Delphi et Borland C Builder représentent plutôt un moyen pratique pour le développement d'extensions du Shell Windows (plus loin: les extensions de Shell).
En revanche pour l'environnement de développement Microsoft, où l'ensemble de l'extension de Shell code est intégré dans le modèle, générée à l'aide de Delphi et C Builder vous offre la possibilité de recourir à la même Assistants de Modèle, il fournit également une plus rapide et simple approche visuelle pour les extensions de Shell en développement, par exemple le package des composants (www.shellplus.com).
En tout cas, la question importante est de le débogage de vos extensions de Shell. Cet article a été écrit pour aider les programmeurs qui utilisent Borland Delphi, C Builder) pour le développement d'extensions de Shell. Il sera également utile à ceux qui utilisent l'approche visuelle, et ceux qui écrivent les extensions Shell 'partir de zéro'.
Comme pour tout autre DLL de débogage, vous devez spécifier l'Application Hôte pour votre Shell extension. Votre Shell extension sera chargé dans l'espace d'adressage de cette application. Dans notre cas, une telle demande est représentée par l'Explorateur Windows. Allez dans le menu Run | Paramètres, appuyez sur le bouton Parcourir et choisissez le Explorer.exe fichier à partir du répertoire Windows. Ne s'empresse pas de démarrer le débogage si, il y a beaucoup de nuances importantes à venir.
Vous devez inclure toutes les informations de débogage dans votre projet. Pour cela ouvrez la fenêtre (en utilisant le menu Projet | Options...), passez à l'onglet et dans le groupe vérification de l'élément. Il doit activer la génération de données spéciale pour le débogage à distance, qui sont également nécessaires pour le débogage COM-applications. Lorsque vous avez terminé avec le débogage de votre Shell extension n'oubliez pas de désactiver cette option, car elle augmente considérablement la taille du module et crée encore plus de taille du fichier avec l'extension *.rsm, qui stocke tous les symboles de débogage à distance. Pour la commodité de débogage, il est également recommandé de vérifier dans l'onglet de la boîte de dialogue. Il vous permettra de garder une trace du travail interne des modules, qui n'ont pas été inclus dans la liste de votre projet de modules.
Vous devez aussi garder à l'esprit la disponibilité du code source de votre Shell extension pour le Delphi débogueur. Ils doivent être situés dans le courant de Delphi répertoire ou le chemin d'accès doit être inscrit dans le Projet | Options | Répertoires/instructions Conditionnelles, de l'élément .
lors de l'achèvement de tous les réglages sur les propriétés du projet, vous devez reconstruire l'ensemble du projet (par le biais de l'élément de menu Projet | Construire...).
Débogage des extensions du Shell sous Windows XP et Delphi
Si vous utilisez Windows XP, vous devez avoir des difficultés avec DLL de débogage-bibliothèques. Ils sont comme suit - le Delphi débogueur ne pas charger les informations de débogage des symboles dans la bibliothèque.
Cette erreur a déjà été corrigée pour Delphi 7, mais si vous travaillez avec les versions antérieures, vous pouvez trouver ci-dessous quelques conseils utiles: faire tous les préparatifs pour le débogage comme décrit ci-dessus, puis démarrer le débogage. Une fois que le principal de l'application a été commencé, interrupteur à Delphes et appuyez sur les touches Ctrl Alt M combinaison de touches. Dans la fenêtre qui liste les modules chargés trouver votre module, cliquez-droit dessus et choisissez Recharger la Table des symboles. Entrez le chemin d'accès complet à votre fichier DLL dans la fenêtre qui apparaît, puis appuyez sur OK. La distance symboles de débogage table doit être rechargé et vous aurez l'occasion de mettre en place les points d'arrêt et le suivi de votre extension d'environnement de travail.
la Préparation de MS Windows
Le transporteur de la Coquille fonctionnalité de l'application de l'Explorateur Windows. Sur l'écran de l'ordinateur, vous pouvez voir les objets, tels que Bureau, barre des tâches, et le contenu des dossiers. Tous ces objets sont pris en charge par l'application de l'Explorateur Windows, et vous pouvez voir ses processus dans le Gestionnaire des Tâches.
il est lié à ce processus est appelé Explorer.exe. Vous pouvez également voir, là, que, parfois, plusieurs copies de ce processus sont en cours d'exécution. Ne soyez pas surpris, tout dépend de la fenêtre des propriétés, comme on le verra plus tard.
Shell Windows décharge automatiquement une bibliothèque dynamique lorsque son compteur interne est égal à zéro, mais il ne se produit qu'à l'expiration d'une certaine période de temps. Il est fait pour accélérer le travail de l'environnement, mais il n'est pas toujours commode lors de l'écriture ou de débogage extensions de Shell dans les limites d'un système opérationnel - lors de la compilation d'un déjà inscrit Shell extension de son fichier peut apparaître bloqué pour l'écriture. Pour les systèmes opérationnels de versions antérieures à Windows 2000, vous pouvez réduire ce délai par l'alimentation les informations suivantes dans le registre:
HKLM
& ! & ! & ! & ! & ! & nbsp Logiciel
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Microsoft
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & nbsp & nbsp & nbsp Windows
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CurrentVersion
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Explorer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AlwaysUnloadDll
Lorsque vous avez terminé avec le débogage de votre Shell extension n'oubliez pas de désactiver cette option, car elle a un mauvais effet sur la productivité de Windows.
Dans n'importe quel système d'exploitation il est possible d'appliquer la méthode suivante pour démarrer Windows Shell de débogage:
Charge du projet pour le débogage en Delphi.
choix de la 'Fin du travail' de la 'START-UP' dans le menu.
Appuyez sur les touches CTRL ALT SUPPR simultanément et cliquez sur 'Non' dans la 'Fin du travail avec Windows' de dialogue. Dans Windows 2000, cliquez sur 'Annuler'. Comme un résultat de la Coque devrait être déchargé de la mémoire de l'ordinateur (Barre des Tâches, les icônes du Bureau et les fenêtres ouvertes avec le contenu des dossiers et les disques disparaissent), mais toutes les autres applications en cours d'exécution, y compris Delphi avec votre projet.
Ajuster toutes les propriétés nécessaires pour les extensions Shell de débogage et de démarrer le débogueur. Shell devrait démarrer normalement, mais maintenant, il va être de travailler sous le débogueur'.
Débogage des extensions du Shell sous Windows NT/2000/XP, vous pouvez configurer le début de plusieurs copies de Windows Explorer (des copies séparées de la Barre des Tâches, pour chaque fenêtre avec le contenu des dossiers ou des disques, etc.). En conséquence, vous serez en mesure de déboguer votre Shell extensions sans déchargement de la Barre des Tâches et le Bureau, qui est beaucoup plus pratique. Configuration de cette opportunité, vous devez ajouter les informations suivantes dans le registre:
HKEY_CURRENT_USER\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Software\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Microsoft\
& nbsp & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Windows\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CurrentVersion\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Explorer\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp DesktopProcess(REG_DWORD) = 1
Pour faire de la fonctionnalité prennent effet, vous devez vous déconnecter et vous Connecter sur. Lorsque vous avez terminé avec le débogage de votre Shell extension n'oubliez pas de désactiver cette option, car elle ralentit Windows considérablement.
les Extensions de Shell de Débogage
Après tous les préparatifs ont été effectués, vous pouvez appuyer sur Run (F9) et démarrer le débogage de votre Shell extension. Configurer l'interruption des points dans les endroits appropriés, utilisez les boutons de Programme 'Pause' et 'Programme Reset' si nécessaire. Il n'y a pas d'autres différences entre le débogage des extensions Shell de débogage régulièrement des applications Delphi. Aussi, ne soyez pas surpris, si la rupture du projet de débogage seront de cause automatique de l'Explorateur Windows chargement. C'est la réaction standard de Windows pour les erreurs lors de l'abandon d'un Explorateur de processus. À la fin de la procédure de débogage avec succès, vous pouvez profiter de la manière décrite ci-dessus (par le biais de Début | Fin de travail).
l'Explorateur Windows est un multi-thread de l'application. Pour chaque extension du Shell en cours d'utilisation il crée un thread séparé, dans lequel elle travaille avec lui par la suite. Donc ne soyez pas surpris, si, au cours de l'étape-par-étape de débogage, vous aurez tout à coup être renvoyée à une autre zone de code, où vous avez débogué récemment, et est ensuite retourné à la première place. Vous pouvez garder une trace de vos voyages à travers les fils dans la fenêtre Fil d'état, qui peut être ouvert dans le menu Affichage | Debug Windows | Threads.
Comme vous pouvez le voir, extension du Shell de débogage n'est pas compliqué. Nous vous souhaitons bonne chance dans l'élaboration utile et réussi les extensions de Shell.
Debogage des extensions de shell a l'aide de delphi
Debogage des extensions de shell a l'aide de delphi : Plusieurs milliers de conseils pour vous faciliter la vie.
Cet article decrit les details de debogage Shell extensions ecrit avec Borland Delphi ou C Builder.
Introduction
aujourd'Hui, la programmation integree des environnements de Borland Delphi et Borland C Builder representent plutot un moyen pratique pour le developpement d'extensions du Shell Windows (plus loin: les extensions de Shell).
En revanche pour l'environnement de developpement Microsoft, ou l'ensemble de l'extension de Shell code est integre dans le modele, generee a l'aide de Delphi et C Builder vous offre la possibilite de recourir a la meme Assistants de Modele, il fournit egalement une plus rapide et simple approche visuelle pour les extensions de Shell en developpement, par exemple le package des composants (www.shellplus.com).
En tout cas, la question importante est de le debogage de vos extensions de Shell. Cet article a ete ecrit pour aider les programmeurs qui utilisent Borland Delphi, C Builder) pour le developpement d'extensions de Shell. Il sera egalement utile a ceux qui utilisent l'approche visuelle, et ceux qui ecrivent les extensions Shell 'partir de zero'.
Comme pour tout autre DLL de debogage, vous devez specifier l'Application Hote pour votre Shell extension. Votre Shell extension sera charge dans l'espace d'adressage de cette application. Dans notre cas, une telle demande est representee par l'Explorateur Windows. Allez dans le menu Run | Parametres, appuyez sur le bouton Parcourir et choisissez le Explorer.exe fichier a partir du repertoire Windows. Ne s'empresse pas de demarrer le debogage si, il y a beaucoup de nuances importantes a venir.
Vous devez inclure toutes les informations de debogage dans votre projet. Pour cela ouvrez la fenetre (en utilisant le menu Projet | Options...), passez a l'onglet et dans le groupe verification de l'element. Il doit activer la generation de donnees speciale pour le debogage a distance, qui sont egalement necessaires pour le debogage COM-applications. Lorsque vous avez termine avec le debogage de votre Shell extension n'oubliez pas de desactiver cette option, car elle augmente considerablement la taille du module et cree encore plus de taille du fichier avec l'extension *.rsm, qui stocke tous les symboles de debogage a distance. Pour la commodite de debogage, il est egalement recommande de verifier dans l'onglet de la boîte de dialogue. Il vous permettra de garder une trace du travail interne des modules, qui n'ont pas ete inclus dans la liste de votre projet de modules.
Vous devez aussi garder a l'esprit la disponibilite du code source de votre Shell extension pour le Delphi debogueur. Ils doivent etre situes dans le courant de Delphi repertoire ou le chemin d'acces doit etre inscrit dans le Projet | Options | Repertoires/instructions Conditionnelles, de l'element .
lors de l'achevement de tous les reglages sur les proprietes du projet, vous devez reconstruire l'ensemble du projet (par le biais de l'element de menu Projet | Construire...).
Debogage des extensions du Shell sous Windows XP et Delphi
Si vous utilisez Windows XP, vous devez avoir des difficultes avec DLL de debogage-bibliotheques. Ils sont comme suit - le Delphi debogueur ne pas charger les informations de debogage des symboles dans la bibliotheque.
Cette erreur a deja ete corrigee pour Delphi 7, mais si vous travaillez avec les versions anterieures, vous pouvez trouver ci-dessous quelques conseils utiles: faire tous les preparatifs pour le debogage comme decrit ci-dessus, puis demarrer le debogage. Une fois que le principal de l'application a ete commence, interrupteur a Delphes et appuyez sur les touches Ctrl Alt M combinaison de touches. Dans la fenetre qui liste les modules charges trouver votre module, cliquez-droit dessus et choisissez Recharger la Table des symboles. Entrez le chemin d'acces complet a votre fichier DLL dans la fenetre qui apparaît, puis appuyez sur OK. La distance symboles de debogage table doit etre recharge et vous aurez l'occasion de mettre en place les points d'arret et le suivi de votre extension d'environnement de travail.
la Preparation de MS Windows
Le transporteur de la Coquille fonctionnalite de l'application de l'Explorateur Windows. Sur l'ecran de l'ordinateur, vous pouvez voir les objets, tels que Bureau, barre des taches, et le contenu des dossiers. Tous ces objets sont pris en charge par l'application de l'Explorateur Windows, et vous pouvez voir ses processus dans le Gestionnaire des Taches.
il est lie a ce processus est appele Explorer.exe. Vous pouvez egalement voir, la, que, parfois, plusieurs copies de ce processus sont en cours d'execution. Ne soyez pas surpris, tout depend de la fenetre des proprietes, comme on le verra plus tard.
Shell Windows decharge automatiquement une bibliotheque dynamique lorsque son compteur interne est egal a zero, mais il ne se produit qu'a l'expiration d'une certaine periode de temps. Il est fait pour accelerer le travail de l'environnement, mais il n'est pas toujours commode lors de l'ecriture ou de debogage extensions de Shell dans les limites d'un systeme operationnel - lors de la compilation d'un deja inscrit Shell extension de son fichier peut apparaître bloque pour l'ecriture. Pour les systemes operationnels de versions anterieures a Windows 2000, vous pouvez reduire ce delai par l'alimentation les informations suivantes dans le registre:
HKLM
& ! & ! & ! & ! & ! & nbsp Logiciel
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Microsoft
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & nbsp & nbsp & nbsp Windows
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CurrentVersion
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Explorer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AlwaysUnloadDll
Lorsque vous avez termine avec le debogage de votre Shell extension n'oubliez pas de desactiver cette option, car elle a un mauvais effet sur la productivite de Windows.
Dans n'importe quel systeme d'exploitation il est possible d'appliquer la methode suivante pour demarrer Windows Shell de debogage:
Charge du projet pour le debogage en Delphi.
choix de la 'Fin du travail' de la 'START-UP' dans le menu.
Appuyez sur les touches CTRL ALT SUPPR simultanement et cliquez sur 'Non' dans la 'Fin du travail avec Windows' de dialogue. Dans Windows 2000, cliquez sur 'Annuler'. Comme un resultat de la Coque devrait etre decharge de la memoire de l'ordinateur (Barre des Taches, les icones du Bureau et les fenetres ouvertes avec le contenu des dossiers et les disques disparaissent), mais toutes les autres applications en cours d'execution, y compris Delphi avec votre projet.
Ajuster toutes les proprietes necessaires pour les extensions Shell de debogage et de demarrer le debogueur. Shell devrait demarrer normalement, mais maintenant, il va etre de travailler sous le debogueur'.
Debogage des extensions du Shell sous Windows NT/2000/XP, vous pouvez configurer le debut de plusieurs copies de Windows Explorer (des copies separees de la Barre des Taches, pour chaque fenetre avec le contenu des dossiers ou des disques, etc.). En consequence, vous serez en mesure de deboguer votre Shell extensions sans dechargement de la Barre des Taches et le Bureau, qui est beaucoup plus pratique. Configuration de cette opportunite, vous devez ajouter les informations suivantes dans le registre:
HKEY_CURRENT_USER\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Software\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Microsoft\
& nbsp & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Windows\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp CurrentVersion\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Explorer\
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp DesktopProcess(REG_DWORD) = 1
Pour faire de la fonctionnalite prennent effet, vous devez vous deconnecter et vous Connecter sur. Lorsque vous avez termine avec le debogage de votre Shell extension n'oubliez pas de desactiver cette option, car elle ralentit Windows considerablement.
les Extensions de Shell de Debogage
Apres tous les preparatifs ont ete effectues, vous pouvez appuyer sur Run (F9) et demarrer le debogage de votre Shell extension. Configurer l'interruption des points dans les endroits appropries, utilisez les boutons de Programme 'Pause' et 'Programme Reset' si necessaire. Il n'y a pas d'autres differences entre le debogage des extensions Shell de debogage regulierement des applications Delphi. Aussi, ne soyez pas surpris, si la rupture du projet de debogage seront de cause automatique de l'Explorateur Windows chargement. C'est la reaction standard de Windows pour les erreurs lors de l'abandon d'un Explorateur de processus. A la fin de la procedure de debogage avec succes, vous pouvez profiter de la maniere decrite ci-dessus (par le biais de Debut | Fin de travail).
l'Explorateur Windows est un multi-thread de l'application. Pour chaque extension du Shell en cours d'utilisation il cree un thread separe, dans lequel elle travaille avec lui par la suite. Donc ne soyez pas surpris, si, au cours de l'etape-par-etape de debogage, vous aurez tout a coup etre renvoyee a une autre zone de code, ou vous avez debogue recemment, et est ensuite retourne a la premiere place. Vous pouvez garder une trace de vos voyages a travers les fils dans la fenetre Fil d'etat, qui peut etre ouvert dans le menu Affichage | Debug Windows | Threads.
Comme vous pouvez le voir, extension du Shell de debogage n'est pas complique. Nous vous souhaitons bonne chance dans l'elaboration utile et reussi les extensions de Shell.
Débogage des extensions de shell à l'aide de delphi
By commentfaire
Débogage des extensions de shell à l'aide de delphi : Plusieurs milliers de conseils pour vous faciliter la vie.