Advertentie

Gedeelde bibliotheken in Windows maken programmeren veel efficiënter voor de programmeur die het wiel niet telkens opnieuw hoeft uit te vinden wanneer hij een gemeenschappelijke taak moet uitvoeren. Ze maken het ook gemakkelijker om beveiligingslekken in gedeelde code te dichten wanneer ze worden gevonden, omdat deze op minder plaatsen moet worden gepatcht en niet vereist dat elke applicatie opnieuw moet worden gecompileerd.

Ondanks deze positieve aspecten kunnen ze hun eigen problemen veroorzaken bij het oplossen van de hoofdoorzaak van de foutmeldingen die ze kunnen veroorzaken.

Onze lezersvraag:

Hoe los ik een Windows Vista 32-bit C: \ Windows \ explorer.exe-probleem op een Dell Inspiron 530 op?

Nadat u op de OK-knop hebt geklikt in het dialoogvenster in de schermafbeelding, wordt het scherm zwart en keert het terug naar normaal wordt uitgevoerd, maar ik heb geen toegang tot de C-, D- en soms de E-schijf wanneer ik ze probeer te openen vanuit Mijn Computer.

Rennen sfc / scannow

instagram viewer
vindt geen fouten. Ik heb updates gedownload van zowel de Dell- als Microsoft-websites om dit probleem op te lossen. Ik heb ook het Microsoft Visual C ++ 2010 Redistributable Package (x86) geïnstalleerd. De pc is volledig up-to-date volgens Windows Update.

runtime-fout

Antwoord van Bruce:

Opmerking: discussies over Windows Explorer in Windows 7 en eerdere versies zijn ook van toepassing op File Explorer in Windows 8 en latere versies. Als er een opmerkelijk verschil is, wordt dit expliciet vermeld.

De Windows-shell

Windows Explorer is de shell en wordt uitgevoerd als het explorer.exe-proces zoals te zien in Taakbeheer of Process Explorer van Sysinternals Process Explorer - De krachtigste vervanging van Taakbeheer [Windows]Laten we eerlijk zijn, Windows Taakbeheer is niet zo geweldig voor het begrijpen en beheren van de processen die op uw computer worden uitgevoerd. Zelfs op Windows 8, waar het veel verbeterd is, kan de taakbeheerder niet in de buurt komen van de ... Lees verder . Net als veel andere Windows-programma's is niet alle functionaliteit die door de shell wordt geleverd, opgenomen in dat ene uitvoerbare bestand. Er zijn tientallen andere EXE en DLL-bestanden Ontbrekende DLL-bestandsfouten oplossen Lees verder gebruikt om eigenschappenbladen, eigenschappenhandlers, previewhandlers, contextmenu's en vele andere elementen die u dagelijks in Windows Verkenner gebruikt te implementeren.

Uitbreidbare schaal

Met shell-extensies kunnen programmeurs eenvoudig functionaliteit toevoegen aan Windows Verkenner door een DLL te schrijven om de taak en het registreren van de DLL bij het besturingssysteem, zodat Explorer weet waar hij de code kan vinden om de taak. Bijvoorbeeld, 7-Zip Bestanden uitpakken uit ZIP, RAR, 7z en andere gemeenschappelijke archievenHeeft u ooit te maken gehad met een .rar-bestand en vroeg u zich af hoe u dit moest openen? Gelukkig is het beheer van ZIP-bestanden en andere gecomprimeerde archieven eenvoudig met de juiste tools. Hier is wat je moet weten. Lees verder voegt een submenu toe aan het standaard contextmenu, dat snel toegang geeft tot taken voor archiefverwerking, Sentinel van de harde schijf Houd de gezondheid van uw harde schijf en SSD in de gaten met Sentinel van de harde schijfHeeft u ooit een schijffout gehad? Helaas is er geen wondermiddel om hardwareschade te voorkomen. Maar het bewaken van uw harde schijf of SSD om te handelen wanneer hun dood waarschijnlijk wordt, is een eerste stap. Lees verder voegt pictogramoverlays toe aan de standaard schijfpictogrammen, zodat u in een oogopslag de status van de schijf kunt zien, en HashTab voegt een nieuw eigenschappenblad toe om hashes van het geselecteerde bestand te berekenen en weer te geven.

contextmenu

Veel van deze shell-uitbreidingen worden geïmplementeerd als in-process Component Object Model (COM) -servers. Dit betekent dat wanneer een proces, in dit geval Windows Verkenner, de extensie gebruikt, deze niet zal verschijnen in Taakbeheer of Process Explorer als een apart lopend proces met een eigen proces-ID (PID). In plaats daarvan wordt het uitgevoerd binnen het aanroepende explorer.exe-proces.

Standaardproces voor één instantie

Windows Explorer is zo geschreven dat het als twee afzonderlijke processen kan worden uitgevoerd, maar - in de standaardconfiguratie - zal het slechts één exemplaar uitvoeren. Wanneer het voor het eerst wordt uitgevoerd als onderdeel van het opstartproces, creëert het de Windows-desktopomgeving. Door het opnieuw uit te voeren, wordt een nieuwe thread in het bestaande proces gemaakt, dat het vertrouwde venster voor bestandsbeheer toont, in plaats van een nieuw proces te starten.

Dit gedrag zorgt voor een kleinere geheugenvoetafdruk, maar kan ook zijn eigen draai geven bij het oplossen van problemen. Een kritieke fout of onverwerkte uitzondering in code die wordt uitgevoerd in het proces explorer.exe, inclusief in-process servers die worden geleverd door DLL's, zal ervoor zorgen dat de hele desktopomgeving ermee wordt uitgeschakeld.

In de meeste gevallen wordt het bureaubladproces automatisch opnieuw gestart. Als het niet opnieuw opstart, zou je nog steeds Ctrl-Shift-Esc moeten kunnen gebruiken om Taakbeheer te openen. Ga vanaf daar naar Bestand> Nieuwe taak (uitvoeren ...)> type explorer.exe> ​​OK om het proces opnieuw te starten.

Dit kan met een simpele wijziging worden voorkomen. Open Windows Verkenner> Organiseren> Map- en zoekopties in Vista / 7. Open voor Windows 8 en hoger Bestandsverkenner> Beeld> Opties> Map wijzigen en zoekopties. Selecteer de Tabblad Weergeven en check Start mapvensters in een apart proces.

folder opties

Als u deze instelling wijzigt, wordt uw bureaubladproces geïsoleerd van alle andere Windows Verkenner-vensters die u hebt geopend. Als een van die Explorer-vensters crasht, blijft uw bureaublad ongedeerd.

Microsoft Visual C ++ Runtime Library (CRT)

De Microsoft Visual C ++ Runtime Library biedt routines voor het programmeren van Windows die veel taken automatiseren, zoals invoer / uitvoer, bestandsmanipulatie, geheugentoewijzing, systeemaanroepen en vele andere.

Bij elke Windows-installatie zijn ten minste twee verschillende versies van de CRT geïnstalleerd. Een vers gebouwde Vista SP2 via Windows 10-machine zal zowel versie 8.0 als 9.0 (respectievelijk VC 2005 en VC 2008) aanwezig hebben. Wanneer aanvullende software is geïnstalleerd, kan deze ook recentere versies van de runtimes bevatten, afhankelijk van welke versie van Visual C ++ is gebruikt om het programma of een van de componenten ervan te maken.

Runtime-fouten

Wanneer een fout of uitzondering wordt aangetroffen in een stuk code, wordt het idealiter zo snel mogelijk afgehandeld mogelijk in de momenteel uitgevoerde procedure, en ofwel gecorrigeerd ofwel rekening houdend met een sierlijke mislukking. Als de fout niet lokaal wordt afgehandeld, wordt deze doorgegeven aan de code die de momenteel uitvoerende code heeft aangeroepen en gaat het proces door totdat de uitzondering is afgehandeld. Als het zijn run naar de top van de keten voltooit en het nog steeds niet wordt afgehandeld, zal het een runtime-fout genereren zoals hierboven te zien is.

Wanneer de gebruiker op de OK-knop klikt, wordt het proces beëindigd. Als het programma een gedefinieerd foutgedrag vertoont, zoals kritieke services, of als de uitvoeringsstatus wordt gecontroleerd door een ander proces, kan het automatisch opnieuw worden gestart. Dit is wat er in dit geval gebeurt. Het scherm wordt zwart als het explorer.exe-proces wordt beëindigd en het bureaublad komt terug als het explorer.exe-proces opnieuw wordt opgestart.

Hoewel het bovenstaande foutbericht duidelijk aangeeft dat het afkomstig was van het proces explorer.exe, is het waarschijnlijk geen probleem met explorer.exe zelf. Het is veel waarschijnlijker dat de boosdoener ergens anders ligt, zoals een extensie van derden die door Explorer wordt gebruikt.

Andere Overwegingen

Met de beschrijving van onze lezer van het bovenstaande probleem, zijn er een aantal aanvullende items waarmee we rekening moeten houden:

  • Ten tijde van de crash probeerde Explorer de lijstweergave te vullen, maar dit lukte niet.
  • Het onvermogen om schijven te openen nadat de desktop opnieuw is gestart, kan erop duiden dat een ander proces er een heeft of meer van die apparaten vergrendeld, waardoor toegang door de nieuw gemaakte explorer.exe wordt voorkomen werkwijze.
  • Rennen sfc / scannow en door een schone gezondheidsverklaring te krijgen, worden door Windows beschermde bronnen onderaan de lijst ter overweging geplaatst. Andere oorzaken zijn veel waarschijnlijker.

De oplossingen zijn binnen

In dit specifieke geval zijn er drie gebieden waar ik naar een oplossing zou zoeken. De eerste heeft betrekking op de Windows Search-service, de tweede op het onderzoeken van shell-extensies en de laatste zijn de VC ++ herdistribueerbare bestanden zelf.

Windows Search

Omdat de originele schermafbeelding de crash laat zien wanneer Explorer probeert de te vullen lijstweergave, is het mogelijk dat de Windows Search-service de toegang tot de vereiste bronnen blokkeert. Ik heb dit zien gebeuren wanneer de service crasht en niet de juiste herstartparameters heeft.

druk op Win + R> type services.msc> OK om de beheerconsole te starten met de servicesmodule. Scrol omlaag naar Windows Search en dubbelklik op het item om het dialoogvenster Eigenschappen te openen. Zorg ervoor dat de instellingen op het tabblad Herstel overeenkomen met de onderstaande afbeelding.

windows-search-eigenschappen

Het meest voorkomende probleem is de instelling "Restart service after:". Deze fout treedt vaak op als deze instelling niet nul is.

Problematische shell-uitbreidingen

Downloaden ShellExView van Nirsoft voor uw systeemarchitectuur (x86 of x64), installeer en voer het uit. Het zal even duren om het systeem te onderzoeken en de tabel met gegevens te vullen. Blader naar de kolom CLSID Modified Time en klik op de koptekst om op dit veld te sorteren. Als u de door Microsoft geleverde modules wilt uitsluiten, kunt u terecht op Opties> Alle Microsoft-extensies verbergen. Voor degenen die een 64-bits versie van Windows gebruiken, wilt u misschien ook de 32-bits extensies op het systeem weergeven door naar te gaan Opties> 32-bits shell-extensies weergeven.

Zoek naar extensies die zijn toegevoegd net voordat de symptomen begonnen. Selecteer een of meer en druk op F7 of ga naar Bestand> Geselecteerde items uitschakelenof klik op het rode LED-pictogram in de werkbalk. Idealiter zou dit één voor één moeten worden gedaan.

Test om te zien of de symptomen aanhouden. Als dat het geval is, kunt u de eerder uitgeschakelde extensie (s) opnieuw inschakelen met F8, Bestand> Geselecteerde items inschakelenof het groene LED-werkbalkpictogram. Schakel vanaf hier een andere extensie uit en herhaal het testproces totdat u degene vindt die het probleem veroorzaakt.

Herstel / installeer VC ++ Redistributables opnieuw

Ik gebruik deze als laatste redmiddel, als slechts één programma fouten uitschakelt. Als u meerdere programma's heeft die problemen hebben met VC ++ runtime-fouten, wilt u dit misschien eerst proberen.

Wanneer ik naar de geïnstalleerde programma's op mijn systeem kijk (Configuratiescherm> Programma's en functies), het toont elke versie van de herdistribueerbare pakketten (en sommige van hun updates) variërend van versie 8 tot en met versie 12 (VC ++ 2005 tot en met VC ++ 2013). Ik heb ze geïnstalleerd vanwege de programmeertools van Microsoft die ik gebruik. De meeste gebruikers hebben deze niet allemaal.

installed-vcpp-redist

Je kunt de nieuwste downloads voor ondersteunde versies van Visual C ++ van Microsoft. Voor onze doeleinden hier hoeft u zich alleen zorgen te maken over de pakketten die zijn gelabeld als "herdistribueerbare" pakketten. Links die zijn geclassificeerd als servicepacks zijn voor de programmeertools, niet alleen voor de runtimes. U hebt alleen de programma's nodig die momenteel worden vermeld in de geïnstalleerde programma's op uw systeem. Het installeren van andere versies helpt in dit geval niet. Gebruikers van 64-bits besturingssystemen hebben mogelijk zowel de x86- als de x64-versie van de CRT nodig.

Windows Update controleert of uw computer de nieuwste updates voor deze pakketten heeft geïnstalleerd, maar controleert niet of deze correct is geïnstalleerd en niet is verbroken. De installatieprogramma's kunnen controleren of alle runtime-bestanden correct zijn en of alle registervermeldingen correct zijn.

Nadat u de juiste installatieprogramma's hebt gedownload, voert u ze uit op het systeem. In de versies van 2005 wordt u gevraagd een licentieovereenkomst te accepteren voordat u het pakket opnieuw installeert. Alle anderen hebben een GUI die u zal vragen of u de bestaande installatie wilt repareren of verwijderen. In de meeste gevallen lost een reparatieoperatie eventuele problemen op.

Als u de meest extreme methode wilt proberen, kunt u de runtimes verwijderen, de machine opnieuw opstarten en ze vervolgens opnieuw installeren. Ik raad deze methode niet aan bij de runtimes van 2005 en 2008. Zonder hen zal Windows veel fouten genereren en veel functionaliteit zal er niet zijn wanneer u opnieuw opstart.

Conclusie

Met een beetje observatie, een beetje vallen en opstaan ​​en enig begrip van hoe fouten worden gegenereerd runtimes op het systeem, kunnen softwareproblemen worden gevonden en opgelost zonder toevlucht te nemen tot gecompliceerde foutopsporingstools en logboeken.

Zijn er runtime-fouten op uw systeem opgetreden? Wat was er nodig om ze op te lossen? Laat het me weten in de reacties hieronder.

Bruce speelt sinds de jaren 70 met elektronica, computers sinds het begin van de jaren 80 en beantwoordde nauwkeurig vragen over technologie die hij de hele tijd niet heeft gebruikt of gezien. Hij ergert zich ook door te proberen gitaar te spelen.