Publicité

Les bibliothèques partagées de Windows rendent la programmation beaucoup plus efficace pour le programmeur qui n'a pas besoin de réinventer la roue à chaque fois qu'il doit effectuer une tâche commune. Ils facilitent également le colmatage des failles de sécurité dans le code partagé lorsqu'ils sont trouvés, car il doit être corrigé à moins d'endroits et ne nécessite pas que chaque application soit recompilée.

Malgré ces aspects positifs, ils peuvent poser leurs propres problèmes lorsqu'ils tentent de résoudre la cause première des messages d'erreur qu'ils peuvent générer.

Question de notre lecteur:

Comment résoudre un problème C: \ Windows \ explorer.exe Windows Vista 32 bits sur un Dell Inspiron 530?

Après avoir cliqué sur le bouton OK dans la boîte de dialogue illustrée dans la capture d'écran, l'écran s'assombrit et revient à la normale en cours d'exécution, mais il ne me permettra pas d'accéder au lecteur C, D et, parfois, au lecteur E lorsque j'essaie d'y accéder à partir de My Ordinateur.

Fonctionnement sfc / scannow ne trouve aucune erreur. J'ai téléchargé des mises à jour à partir des sites Web Dell et Microsoft en essayant de résoudre ce problème. J'ai également installé le package redistribuable Microsoft Visual C ++ 2010 (x86). Le PC est complètement à jour selon Windows Update.

erreur d'exécution

Réponse de Bruce:

Remarque: les discussions sur l'Explorateur Windows dans Windows 7 et les versions antérieures s'appliquent également à l'Explorateur de fichiers dans Windows 8 et versions ultérieures. S'il y a une différence notable entre eux, elle sera explicitement indiquée.

Le shell Windows

Windows Explorer est le shell et s'exécute en tant que processus explorer.exe comme vu dans le Gestionnaire des tâches ou Explorateur de processus de Sysinternals Process Explorer - Le remplacement de gestionnaire de tâches le plus puissant [Windows]Soyons honnêtes, le Gestionnaire des tâches de Windows n'est pas idéal pour comprendre et gérer les processus en cours d'exécution sur votre ordinateur. Même sur Windows 8, où il s'est beaucoup amélioré, le gestionnaire de tâches ne peut pas s'approcher de la ... Lire la suite . Comme de nombreux autres programmes Windows, toutes les fonctionnalités fournies par le shell ne sont pas incorporées dans ce fichier exécutable unique. Il existe des dizaines d'autres EXE et Fichiers DLL Comment réparer les erreurs de fichier DLL manquantes Lire la suite utilisé pour implémenter des feuilles de propriétés, des gestionnaires de propriétés, des gestionnaires d'aperçu, des menus contextuels et de nombreux autres éléments que vous utilisez quotidiennement dans l'Explorateur Windows.

Coque extensible

Les extensions shell permettent aux programmeurs d'ajouter facilement des fonctionnalités à l'Explorateur Windows en écrivant une DLL pour effectuer la et enregistrer la DLL avec le système d'exploitation, afin qu'Explorer sache où trouver le code pour effectuer la tâche. Par exemple, 7-Zip Comment extraire des fichiers de ZIP, RAR, 7z et d'autres archives communesAvez-vous déjà été confronté à un fichier .rar et vous êtes-vous demandé comment l'ouvrir? Heureusement, la gestion des fichiers ZIP et autres archives compressées est simple avec les bons outils. Voici ce que vous devez savoir. Lire la suite ajoute un sous-menu au menu contextuel standard, donnant un accès rapide aux tâches de gestion des archives, Sentinelle du disque dur Gardez un œil sur la santé de votre disque dur et SSD avec Sentinel à disque durAvez-vous déjà eu une panne de disque? Malheureusement, il n'y a pas de panacée pour éviter les dommages matériels. Mais surveiller votre disque dur ou SSD, pour agir lorsque leur mort est probable, est une première étape. Lire la suite ajoute des superpositions d'icônes aux icônes de lecteur standard, afin que vous puissiez voir l'état de santé du lecteur en un coup d'œil, et HashTab ajoute une nouvelle feuille de propriétés pour calculer et afficher les hachages du fichier sélectionné.

menu contextuel

Beaucoup de ces extensions de shell sont implémentées en tant que serveurs COM (Component Object Model) en cours. Cela signifie que lorsqu'un processus, dans ce cas, l'Explorateur Windows, utilise l'extension, il n'apparaîtra pas dans le Gestionnaire des tâches ou l'Explorateur de processus en tant que processus en cours d'exécution distinct avec son propre identificateur de processus (PID). Au lieu de cela, il s'exécute à l'intérieur du processus explorer.exe appelant.

Processus à instance unique par défaut

L'explorateur Windows est écrit pour pouvoir s'exécuter en tant que deux processus distincts, mais - dans sa configuration par défaut - il n'exécutera qu'une seule instance. Lorsqu'il est exécuté pour la première fois dans le cadre du processus de démarrage, il crée l'environnement de bureau Windows. L'exécuter à nouveau crée un nouveau thread dans le processus existant, qui affiche la fenêtre de gestion de fichiers familière, au lieu de démarrer un nouveau processus.

Ce comportement permet une empreinte mémoire réduite, mais peut également apporter sa propre petite touche lors du dépannage des problèmes. Une erreur critique ou une exception non gérée dans le code en cours d'exécution dans le processus explorer.exe, y compris les serveurs en cours de traitement fournis par les DLL, entraînera la panne de tout l'environnement de bureau.

Dans la plupart des cas, le processus de bureau sera automatiquement redémarré. S'il ne redémarre pas, vous devriez toujours pouvoir utiliser Ctrl-Maj-Échap pour afficher le Gestionnaire des tâches. De là, allez à Fichier> Nouvelle tâche (Exécuter…)> type explorer.exe> ​​OK pour redémarrer le processus.

Cela peut être évité avec un simple changement. Ouvert Explorateur Windows> Organiser> Options de dossier et de recherche dans Vista / 7. Pour Windows 8 et versions ultérieures, ouvrez Explorateur de fichiers> Affichage> Options> Changer de dossier et options de recherche. Sélectionnez le Onglet Affichage et vérifie Lancer les fenêtres de dossiers dans un processus distinct.

options de dossier

La modification de ce paramètre isole votre processus de bureau de toutes les autres fenêtres de l'Explorateur Windows que vous avez ouvertes. Si l'une de ces fenêtres de l'Explorateur plante, votre bureau restera indemne.

Bibliothèque d'exécution Microsoft Visual C ++ (CRT)

La bibliothèque d'exécution Microsoft Visual C ++ fournit des routines pour la programmation de Windows qui automatisent de nombreuses tâches, telles que les entrées / sorties, la manipulation de fichiers, l'allocation de mémoire, les appels système et bien d'autres.

Chaque installation de Windows aura au moins deux versions différentes du CRT installées. Un Vista SP2 nouvellement construit via Windows 10 aura les versions 8.0 et 9.0 (VC 2005 et VC 2008, respectivement) présentes. Lorsqu'un logiciel supplémentaire est installé, il peut également inclure des versions plus récentes des runtimes, selon la version de Visual C ++ utilisée pour créer le programme ou l'un de ses composants.

Erreurs d'exécution

Lorsqu'une erreur ou une exception est rencontrée dans un morceau de code, idéalement, elle sera traitée dès que possible dans la procédure en cours d’exécution, et soit être corrigée, soit permettre une échec. Si l'erreur n'est pas gérée localement, elle est transmise au code qui a appelé le code en cours d'exécution et le processus se poursuit jusqu'à ce que l'exception soit gérée. S'il termine sa course en haut de la chaîne et qu'il n'est toujours pas géré, il générera une erreur d'exécution comme indiqué ci-dessus.

Lorsque l'utilisateur clique sur le bouton OK, le processus se termine. Si le programme a un comportement d'échec défini, tel que des services critiques, ou si son état d'exécution est surveillé par un autre processus, il peut être réapparu automatiquement. C'est ce qui se passe dans ce cas. L'écran s'éteint lorsque le processus explorer.exe est terminé, puis le bureau revient lorsque le processus explorer.exe est redémarré.

Bien que le message d'erreur ci-dessus indique clairement qu'il provient du processus explorer.exe, il est peu probable qu'il s'agisse d'un problème avec explorer.exe lui-même. Il est beaucoup plus probable que le coupable se trouve ailleurs, comme une extension tierce utilisée par Explorer.

autres considérations

Avec la description de notre problème par notre lecteur ci-dessus, il y a quelques éléments supplémentaires dont nous devons tenir compte:

  • Au moment de l'accident, Explorer tentait, mais sans succès, de remplir la vue de liste.
  • L'incapacité d'accéder aux lecteurs après la réapparition du bureau peut indiquer qu'un autre processus en a un ou plusieurs de ces appareils verrouillés, empêchant ainsi l'accès à partir de l'explorateur nouvellement créé. processus.
  • Fonctionnement sfc / scannow et obtenir un bilan de santé propre, place les ressources protégées par Windows au bas de la liste pour examen. D'autres causes sont beaucoup plus probables.

Les correctifs sont en place

Dans ce cas particulier, il y a trois domaines où je chercherais une solution. Le premier implique le service de recherche Windows, le second implique d'enquêter sur les extensions du shell, et le dernier serait les redistribuables VC ++ eux-mêmes.

Recherche Windows

Parce que la capture d'écran d'origine montre le crash qui se produit lorsque l'Explorateur tente de remplir le listview, il est possible que le service de recherche Windows bloque l'accès aux ressources requises. J'ai vu cela se produire lorsque le service se bloque et n'a pas les paramètres de redémarrage corrects.

presse Win + R> type services.msc> OK pour démarrer la console de gestion avec le module de services. Faites défiler jusqu'à Windows Search et double-cliquez sur l'entrée pour ouvrir la boîte de dialogue Propriétés. Assurez-vous que les paramètres de l'onglet Récupération correspondent à l'image ci-dessous.

windows-search-properties

Le problème le plus courant est le paramètre «Redémarrer le service après:». Cette erreur se produit fréquemment lorsque ce paramètre est différent de zéro.

Extensions de shell problématiques

Télécharger ShellExView de Nirsoft pour l'architecture de votre système (x86 ou x64), installez-le et exécutez-le. Il faudra un peu de temps pour examiner le système et remplir le tableau de données. Faites défiler jusqu'à la colonne Heure modifiée CLSID et cliquez sur l'en-tête pour trier sur ce champ. Si vous souhaitez exclure les modules fournis par Microsoft, vous pouvez accéder à Options> Masquer toutes les extensions Microsoft. Pour ceux qui utilisent une version 64 bits de Windows, vous souhaiterez peut-être également afficher les extensions 32 bits sur le système en accédant à Options> Afficher les extensions shell 32 bits.

Recherchez les extensions qui ont été ajoutées juste avant le début des symptômes. Sélectionnez un ou plusieurs et appuyez sur F7 ou allez à Fichier> Désactiver les éléments sélectionnésou cliquez sur l'icône LED rouge dans la barre d'outils. Idéalement, cela devrait être fait un à la fois.

Testez pour voir si les symptômes persistent. Si tel est le cas, vous pouvez réactiver les extensions précédemment désactivées à l'aide de F8, Fichier> Activer les éléments sélectionnésou l'icône de la barre d'outils LED verte. À partir d'ici, désactivez une autre extension et répétez le processus de test jusqu'à ce que vous trouviez celle qui cause le problème.

Réparer / réinstaller les redistribuables VC ++

J'utilise celui-ci en dernier recours, si un seul programme élimine les erreurs. Si vous avez plusieurs programmes qui rencontrent des problèmes avec les erreurs d'exécution VC ++, vous voudrez peut-être essayer d'abord.

En regardant les programmes installés sur mon système (Panneau de configuration> Programmes et fonctionnalités), il affiche toutes les versions des packages redistribuables (et certaines de leurs mises à jour) allant de la version 8 à la version 12 (VC ++ 2005 à VC ++ 2013). Je les ai installés à cause des outils de programmation Microsoft que j'utilise. La plupart des utilisateurs n'auront pas tout cela.

installed-vcpp-redist

Vous pouvez trouver le derniers téléchargements pour les versions prises en charge de Visual C ++ de Microsoft. Pour nos besoins ici, vous devez uniquement vous préoccuper de ceux qui sont étiquetés comme des packages «redistribuables». Les liens classés en tant que Service Packs sont destinés aux outils de programmation et non simplement aux runtimes. Vous n'aurez besoin que de ceux qui sont actuellement répertoriés dans les programmes installés sur votre système. L'installation d'autres versions n'aidera pas dans ce cas. Les utilisateurs de systèmes d'exploitation 64 bits peuvent avoir besoin des versions x86 et x64 du CRT.

Windows Update vérifie si votre ordinateur dispose des dernières mises à jour pour ces packages, mais il ne vérifie pas qu'il est correctement installé et qu'il n'a pas été endommagé. Les programmes d'installation peuvent vérifier que tous les fichiers d'exécution sont corrects et que toutes les entrées de registre sont correctes.

Une fois que vous avez téléchargé les programmes d'installation appropriés, exécutez-les sur le système. Les versions 2005 vous inviteront à accepter un accord de licence avant de réinstaller le package. Tous les autres ont une interface graphique qui vous demandera si vous souhaitez réparer ou désinstaller l'installation existante. Dans la plupart des cas, une opération de réparation résoudra tous les problèmes.

Si vous souhaitez essayer la méthode la plus extrême, vous pouvez désinstaller les runtimes, redémarrer la machine, puis les réinstaller. Je ne recommande pas cette méthode avec les runtimes 2005 et 2008. Sans eux, Windows générera beaucoup d'erreurs et beaucoup de fonctionnalités ne seront pas là pour vous lorsque vous redémarrerez.

Conclusion

Avec un peu d'observation, une touche d'essais et d'erreurs, et une certaine compréhension de la façon dont les erreurs sont générées à partir de les exécutions sur le système, les problèmes logiciels peuvent être trouvés et résolus sans recourir à des outils de débogage compliqués et journaux.

Avez-vous rencontré des erreurs d'exécution sur votre système? Que fallait-il pour les résoudre? Faites le moi savoir dans les commentaires ci-dessous.

Bruce joue avec l'électronique depuis les années 70, les ordinateurs depuis le début des années 80 et répond avec précision aux questions sur la technologie qu'il n'a pas utilisée ni vue tout le temps. Il s'énerve également en tentant de jouer de la guitare.