Delte biblioteker i Windows gør programmeringen meget mere effektiv til programmøren, der ikke behøver at genopfinde hjulet hver gang han skal udføre en fælles opgave. De gør det også lettere at tilslutte sikkerhedshuller i delt kode, når de findes, da det skal patches på færre steder og ikke kræver, at hver applikation genkompileres.
På trods af disse positive aspekter kan de udgøre deres egne problemer, når de forsøger at fejle årsagen til fejlmeddelelser, de kan generere.
Vores Læser Spørgsmål:
Hvordan løser jeg et Windows Vista 32-bit C: \ Windows \ explorer.exe-problem på en Dell Inspiron 530?
Når du har klikket på OK-knappen i dialogboksen, der vises på skærmbilledet, vil skærmen blive mørkere og vende tilbage til normal kørsel, men det giver mig ikke adgang til C, D og til tider E-drevet, når jeg prøver at få adgang til dem fra denne computer.
Running sfc / scannow finder ingen fejl. Jeg hentede opdateringer fra både Dell og Microsoft websites, der forsøger at løse dette problem. Jeg har også installeret Microsoft Visual C ++ 2010-omfordelbare pakke (x86). PC'en er helt opdateret ifølge Windows Update.
Bruces svar:
Bemærk: Diskussioner om Windows Explorer i Windows 7 og tidligere versioner gælder også for File Explorer i Windows 8 og nyere versioner. Hvis der er en bemærkelsesværdig forskel mellem dem, vil det blive udtrykkeligt angivet.
Windows Shell
Windows Stifinder er skallen og kører som explorer.exe-processen som vist i Opgavehåndtering eller Sysinternals Process Explorer Process Explorer - Den mest kraftfulde Task Manager Replacement [Windows] Process Explorer - Den mest kraftfulde Task Manager Replacement [Windows] Lad os være ærlige, Windows Task Manager er ikke så god til at forstå og styre de processer, der kører på din computer. Selv på Windows 8, hvor det er meget forbedret, kan task manager ikke komme tæt på ... Læs mere. Ligesom mange andre Windows-programmer er al den funktionalitet, som shell leveres, ikke indarbejdet i den enkelt eksekverbare fil. Der findes dusinvis af andre EXE- og DLL-filer Sådan løses manglende DLL-filfejl Sådan løses manglende DLL-filfejl Læs mere brugt til at gennemføre egenskabsark, ejendomshåndteringsprogrammer, forhåndsvisningshåndtere, kontekstmenuer og mange andre elementer, du bruger i Windows Explorer hver gang dag.
Extensible Shell
Shell-udvidelser tillader programmerere nemt at tilføje funktionalitet til Windows Stifinder ved at skrive en DLL for at udføre opgaven og registrere DLL'en med operativsystemet, så Explorer ved, hvor man finder koden for at udføre opgaven. For eksempel 7-Zip Sådan udpakkes filer fra ZIP, RAR, 7z og andre almindelige arkiver Sådan udtrækkes filer fra ZIP, RAR, 7z og andre fælles arkiver Har du nogensinde konfronteret en .rar-fil og spekuleret på, hvordan man åbner den? Heldigvis er det nemt at administrere ZIP-filer og andre komprimerede arkiver med de rigtige værktøjer. Her er hvad du behøver at vide. Læs mere tilføjer en undermenu til standardkontekstmenuen, der giver hurtig adgang til arkivhåndteringsopgaver, harddisk Sentinel Hold øje med din harddisk og SSD-sundhed med harddisk Sentinel Hold øje med din harddisk og SSD-sundhed med harddisk Sentinel Har du nogensinde haft et drevfejl? Desværre er der ingen panacea for at forhindre hardware skade. Men at overvåge din HDD eller SSD, at handle når deres død bliver sandsynligt, er et første skridt. Læs mere tilføjer ikonoverlejringer til standarddrevikonerne, så du kan se drevets sundhedstilstand på et øjeblik, og HashTab tilføjer et nyt ejendomsark for at beregne og vise hashes af den valgte fil.
Mange af disse skaludvidelser er implementeret som COM-servere i COM-serveren. Dette betyder, at når en proces, i dette tilfælde Windows Stifinder, bruger udvidelsen, vises den ikke i Task Manager eller Process Explorer som en separat køreproces med sin egen procesidentifikator (PID). I stedet udføres den indenfor kaldet explorer.exe-processen.
Standard single-instance-proces
Windows Stifinder er skrevet for at kunne køre som to separate processer, men i sin standardkonfiguration vil den kun køre en enkelt forekomst. Når den først udføres som en del af startprocessen, skaber den Windows-skrivebordsmiljøet. Udførelse af det igen skaber en ny tråd i den eksisterende proces, der viser det velkendte filstyringsvindue, i stedet for at starte en ny proces.
Denne adfærd muliggør et reduceret hukommelsesfodaftryk, men kan også medbringe et lille lille twist ved fejlfindingsproblemer. En kritisk fejl eller uhåndteret undtagelse i kode, der udføres i explorer.exe-processen, herunder in-process-servere, der leveres af DLL'er, vil få hele skrivebordsmiljøet til at gå ned med det.
I de fleste tilfælde genstartes skrivebordsprocessen automatisk. Hvis det ikke genstarter, skal du stadig kunne bruge Ctrl-Shift-Esc til at hente Task Manager. Derefter skal du gå til Filer> Ny opgave (Kør ...)> type explorer.exe> OK for at genstarte processen.
Dette kan undgås med en simpel ændring. Åbn Windows Explorer> Organiser> Mappe og søgemuligheder i Vista / 7. For Windows 8 og nyere skal du åbne Filoversigt> Vis> Valg> Skift mappe og søgeindstillinger . Vælg fanen Vis og kontroller Start mappevinduer i en separat proces .
Hvis du ændrer denne indstilling, isoleres din desktop-proces fra alle de andre Windows Stifinder-vinduer, du har åbnet. Hvis nogen af disse Explorer-vinduer krasjer, vil dit skrivebord forblive uskadt.
Microsoft Visual C ++ Runtime Library (CRT)
Microsoft Visual C ++ Runtime Library indeholder rutiner til programmering af Windows, der automatiserer mange opgaver, såsom input / output, filmanipulation, hukommelseallokering, systemopkald og mange andre.
Hver Windows-installation vil have mindst to forskellige versioner af CRT installeret. En nybygget Vista SP2 gennem Windows 10-maskine vil have både version 8.0 og 9.0 (henholdsvis VC 2005 og VC 2008). Når ekstra software er installeret, kan den også omfatte nyere versioner af runtime, afhængigt af hvilken version af Visual C ++, der blev brugt til at oprette programmet eller dets komponenter.
Runtime fejl
Når der opstår en fejl eller en undtagelse i et stykke kode, vil det helst blive behandlet så hurtigt som muligt i den igangværende procedure, og enten korrigeres eller tillades en yndefuld fejl. Hvis fejlen ikke håndteres lokalt, bliver den passeret op til den kode, der hedder den kode, der aktuelt udføres, og processen fortsætter, indtil undtagelsen håndteres. Hvis det fuldender sin kørsel til toppen af kæden og det stadig ikke håndteres, vil det generere en runtime fejl som set ovenfor.
Når brugeren klikker på OK-knappen, afsluttes processen. Hvis programmet har en defineret fejladfærd, som f.eks. Kritiske tjenester, eller dens løbende tilstand overvåges af en anden proces, kan den automatisk blive respawned. Dette er hvad der sker i dette tilfælde. Skærmen sorte ud, når explorer.exe-processen afsluttes, så kommer skrivebordet tilbage, når processen explorer.exe genstartes.
Selvom fejlmeddelelsen ovenfor tydeligt angiver, at det kom fra explorer.exe-processen, er det ikke sandsynligt, at det vil være et problem med explorer.exe selv. Det er meget mere sandsynligt, at skyldige ligger andre steder, f.eks. En udvidelse fra tredjepart, der bruges af Explorer.
Andre overvejelser
Med vores læsers beskrivelse af problemet ovenfor er der et par ekstra ting, vi skal tage hensyn til:
- På tidspunktet for nedbruddet forsøgte Explorer, men ikke kunne fylde listevisningen.
- Manglende evne til at få adgang til drev efter at skrivebordet har responderet, kan angive en anden proces, hvis en eller flere af disse enheder er låst, og dermed forhindre adgang fra den nyoprettede explorer.exe-proces.
- Kører sfc / scannow og får en ren sundhedserklæring, dråber Windows beskyttede ressourcer til bunden af listen til overvejelse. Andre årsager er langt mere sandsynlige.
Fixerne er i
I dette særlige tilfælde er der tre områder, hvor jeg ville søge en løsning. Den første involverer Windows Search-tjenesten, den anden indebærer undersøgelse af shell-udvidelser, og sidstnævnte vil være VC + + -fordelingsfordelene selv.
Windows søgning
Da det oprindelige skærmbillede viser, at nedbruddet opstår, når Explorer forsøger at udfylde listevisningen, er det muligt, at Windows Search-tjenesten blokkerer adgangen til de nødvendige ressourcer. Jeg har set dette ske, når tjenesten går i stykker og ikke har de korrekte genstartsparametre.
Tryk på Win + R> skriv services.msc> OK for at starte styringskonsollen med servicemodulet. Rul ned til Windows Search, og dobbeltklik på indgangen for at åbne dialogboksen Egenskaber. Sørg for, at indstillingerne på fanen Gendannelse matcher billedet nedenfor.
Det mest almindelige problem er indstillingen "Genstart tjeneste efter:". Denne fejl opstår ofte, når denne indstilling er ikke-nul.
Problematiske Shell Extensions
Download Nirsoft's ShellExView til din systemarkitektur (x86 eller x64), installer og kør den. Det vil tage lidt tid at undersøge systemet og fylde tabellen med data. Rul over til kolonnen CLSID Modificeret tid og klik på overskriften for at sortere i dette felt. Hvis du ønsker at udelukke de moduler, der leveres af Microsoft, kan du gå til Valg> Skjul alle Microsoft-udvidelser . For dem, der bruger en 64-bit version af Windows, kan du også vise 32-bit udvidelser på systemet ved at gå til Valg> Vis 32-bit Shell Extensions .
Se efter udvidelser, der blev tilføjet lige før symptomerne begyndte. Vælg en eller flere, og tryk på F7 eller gå til Filer> Deaktiver markerede elementer, eller klik på det røde LED-ikon på værktøjslinjen. Ideelt set bør dette gøres en ad gangen.
Test for at se om symptomerne vedvarer. Hvis de gør det, kan du genaktivere de tidligere deaktiverede udvidelser ved at bruge F8, Fil> Aktiver valgte elementer eller det grønne LED-værktøjslinjeikon. Herfra deaktiverer du en anden udvidelse og gentager testprocessen, indtil du finder den der forårsager problemet.
Reparation / Geninstaller VC + + Redistributables
Jeg bruger denne som en sidste udvej, hvis kun et program udskyder fejl. Hvis du har flere programmer, der har problemer med VC ++ runtime fejl, kan du prøve det først.
Når du kigger på de installerede programmer på mit system ( Kontrolpanel> Programmer og funktioner ), viser den alle versioner af de omfordelbare pakker (og nogle af deres opdateringer) fra version 8 til version 12 (VC ++ 2005 gennem VC ++ 2013). Jeg har dem installeret på grund af de Microsoft programmeringsværktøjer, jeg bruger. De fleste brugere vil ikke have alle disse.
Du kan finde de seneste downloads for understøttede versioner af Visual C ++ fra Microsoft. Til vores formål her behøver du kun at være bekymret over dem, der er mærket som "omfordelbare" pakker. Links, der er klassificeret som service packs, er til programmeringsværktøjerne, ikke kun runtime. Du skal kun bruge dem, der for øjeblikket er angivet i de installerede programmer på dit system. Installation af andre versioner hjælper ikke i dette tilfælde. Brugere af 64-bit operativsystemer kan have brug for både x86 og x64 versioner af CRT.
Windows Update kontrollerer, om din computer har de seneste opdateringer til disse pakker installeret, men det kontrollerer ikke, at det er korrekt installeret og ikke blevet brudt. Installatørerne kan kontrollere, at alle runtime-filerne er de rigtige, og alle registreringsdatabasen er korrekte.
Når du har downloadet de relevante installatører, skal du køre dem på systemet. Versionerne fra 2005 vil bede dig om at acceptere en licensaftale, før du geninstallerer pakken. Alle de andre har en GUI, der spørger dig om du vil reparere eller afinstallere den eksisterende installation. I de fleste tilfælde vil en reparation løse eventuelle problemer.
Hvis du vil prøve den mest ekstreme metode, kan du afinstallere runtime, genstarte maskinen og derefter geninstallere dem. Jeg anbefaler ikke denne metode med 2005 og 2008 runtime. Uden dem vil Windows generere mange fejl, og en stor funktionalitet vil ikke være der for dig, når du genstarter.
Konklusion
Med en lille smule observation, et strejf af forsøg og fejl og en vis forståelse for, hvordan fejl genereres fra runtimes på systemet, kan softwareproblemer findes og løses uden at ty til komplicerede fejlfindingsværktøjer og logfiler.
Har du kørt ind i runtime fejl på dit system? Hvad blev der krævet for at løse dem? Lad mig vide i kommentarerne nedenfor.