Publicitate

Bibliotecile partajate din Windows fac programarea mult mai eficientă pentru programatorul care nu are nevoie să reinventeze roata de fiecare dată când are nevoie pentru a efectua o sarcină comună. De asemenea, facilitează conectarea găurilor de securitate în codul partajat atunci când este găsit, deoarece acesta trebuie să fie plasat în mai puține locuri și nu necesită recompilarea fiecărei aplicații.

În ciuda acestor aspecte pozitive, ele își pot pune propriile probleme atunci când încearcă să rezolve cauza principală a mesajelor de eroare pe care le pot genera.

Întrebarea cititorului nostru:

Cum pot remedia o problemă Windows Vista pe 32 de biți C: \ Windows \ explorer.exe pe un Dell Inspiron 530?

După ce faceți clic pe butonul OK din dialogul afișat în ecranul de ecran, ecranul se va înnegri și va reveni la normal rulând, dar nu îmi va permite să accesez C, D și, uneori, unitatea E atunci când încerc să le accesorizez din My Calculator.

Alergare sfc / scanare nu găsește nicio eroare. Am descărcat actualizări de pe site-urile Dell și Microsoft, încercând să remediați această problemă. Am instalat și Microsoft Visual C ++ 2010 Redistributable Package (x86). PC-ul este complet actualizat în funcție de Windows Update.

eroare de rulare

Răspunsul lui Bruce:

Notă: Discuțiile despre Windows Explorer în Windows 7 și versiunile anterioare se aplică și pentru File Explorer în Windows 8 și versiunile ulterioare. Dacă există o diferență notabilă între ele, se va preciza în mod explicit.

Windows Shell

Windows Explorer este shell-ul și rulează ca procesul explorer.exe așa cum se vede în Task Manager sau Exploratorul de proces al Sysinternals Process Explorer - Cel mai puternic Task Manager de înlocuire [Windows]Să fim sinceri, Managerul de activități Windows nu este atât de bun pentru înțelegerea și gestionarea proceselor care rulează pe computer. Chiar și pe Windows 8, unde este mult îmbunătățit, managerul de sarcini nu se poate apropia de ... Citeste mai mult . La fel ca multe alte programe Windows, toată funcționalitatea oferită de shell nu este încorporată în acel fișier executabil. Există zeci de alte EXE și Fișiere DLL Cum să remediați erorile de fișiere DLL care lipsesc Citeste mai mult folosit pentru a implementa foile de proprietate, gestionarea proprietăților, gestionarea previzualizării, meniurile de context și multe alte elemente pe care le utilizați în Windows Explorer în fiecare zi.

Cochilie Extensibilă

Extensiile Shell permit programatorilor să adauge cu ușurință funcționalitate în Windows Explorer, scriind un DLL pentru a efectua sarcină și înregistrarea DLL la sistemul de operare, astfel încât Explorer știe unde să găsească codul pentru a realiza sarcină. De exemplu, 7-Zip Cum să extrageți fișierele din ZIP, RAR, 7z și alte arhive comuneTe-ai confruntat vreodată cu un fișier .rar și te-ai întrebat cum să-l deschizi? Din fericire, gestionarea fișierelor ZIP și a altor arhive comprimate este simplă cu instrumentele potrivite. Iată ce trebuie să știți. Citeste mai mult adaugă un submeniu la meniul contextual standard, oferind acces rapid la sarcinile de gestionare a arhivelor, Sentinela pe hard disk Fii atent la HDD & SSD Health cu Hard disk SentinelAți avut vreodată o defecțiune la volan? Din păcate, nu există nicio panaceu pentru prevenirea deteriorării hardware-ului. Dar monitorizarea HDD sau SSD, pentru a acționa atunci când moartea lor devine probabil, este un prim pas. Citeste mai mult adaugă suprapuneri de pictograme la pictogramele unității standard, astfel încât să puteți vedea starea de sănătate a unității dintr-o privire și HashTab adaugă o foaie de proprietate nouă, pentru a calcula și afișa hashes-urile din fișierul selectat.

meniul contextual

Multe dintre aceste extensii shell sunt implementate ca servere COM Model Object Object (COM). Aceasta înseamnă că atunci când un proces, în acest caz Windows Explorer, folosește extensia, nu va apărea în Task Manager sau Process Explorer ca proces de rulare separat cu propriul identificator de proces (PID). În schimb, se execută în cadrul procesului de apelare explorer.exe.

Procesul implicit de o singură instanță

Windows Explorer este scris pentru a putea rula ca două procese separate, dar - în configurația implicită - va rula doar o singură instanță. Când este prima dată executată ca parte a procesului de pornire, creează mediul desktop Windows. Executarea acestuia din nou creează un nou thread în procesul existent, care afișează fereastra familiară de gestionare a fișierelor, în loc să înceapă un nou proces.

Acest comportament permite o amprentă de memorie redusă, dar poate aduce și o mică răsucire la rezolvarea problemelor. O eroare critică sau o excepție nemodificată a codului care este executat în procesul explorer.exe, inclusiv serverele în proces furnizate de DLL-uri, va face ca întregul mediu desktop să coboare cu acesta.

În cele mai multe cazuri, procesul desktop va fi repornit automat. Dacă nu se repornește, ar trebui să puteți folosi Ctrl-Shift-Esc pentru a deschide Task Manager. De acolo, mergeți la Fișier> Sarcină nouă (Executare ...)> tip explorer.exe> ​​OK pentru a reporni procesul.

Acest lucru poate fi evitat cu o simplă schimbare. Deschis Windows Explorer> Organizare> Folder și opțiuni de căutare în Vista / 7. Pentru Windows 8 și versiuni ulterioare, deschideți File Explorer> View> Opțiuni> Schimbați folderul și opțiuni de căutare. Selectează Fila Vizualizare și verificați Lansați ferestrele folderului într-un proces separat.

folder opțiuni

Modificarea acestei setări izolează procesul desktop de toate celelalte ferestre ale Windows Explorer pe care le aveți deschise. Dacă oricare dintre aceste ferestre ale Explorer se blocă, desktopul dvs. va rămâne nesperat.

Microsoft Visual C ++ Runtime Library (CRT)

Microsoft Visual C ++ Runtime Library oferă rutine pentru programarea Windows care automatizează multe sarcini, cum ar fi intrare / ieșire, manipulare fișiere, alocare memorie, apeluri de sistem și multe altele.

Fiecare instalare Windows va avea instalate cel puțin două versiuni diferite ale CRT. O mașină Vista SP2 proaspăt construită prin Windows 10 va avea două versiuni 8.0 și 9.0 (VC 2005 și respectiv VC 2008). Când este instalat un software suplimentar, acesta poate include, de asemenea, versiuni mai recente de rulare, în funcție de ce versiune a Visual C ++ a fost utilizată pentru a crea programul sau oricare dintre componentele sale.

Erori de execuție

Când o eroare sau o excepție este întâlnită într-o bucată de cod, în mod ideal, va fi tratată cât mai curând posibil în procedura de execuție actuală și poate fi corectat sau permite realizarea unui grațios eșec. Dacă eroarea nu este gestionată local, aceasta este transmisă la codul care a numit codul în curs de execuție, iar procesul continuă până când este tratată excepția. Dacă își finalizează rularea până în vârful lanțului și încă nu este tratată, va genera o eroare de rulare așa cum s-a văzut mai sus.

Când utilizatorul face clic pe butonul OK, procesul va fi încheiat. Dacă programul are un comportament de eșec definit, cum ar fi serviciile critice sau dacă starea de rulare a acestuia este monitorizată de un alt proces, acesta poate fi automat redimensionat. Acest lucru se întâmplă în acest caz. Ecranul se declanșează atunci când se încheie procesul explorer.exe, apoi desktopul revine la repornirea procesului explorer.exe.

Deși mesajul de eroare de mai sus indică în mod clar că provine din procesul explorer.exe, nu este probabil să fie o problemă cu explorer.exe în sine. Este mult mai probabil că vinovatul se află în altă parte, cum ar fi o extensie terță parte folosită de Explorer.

Alte considerente

Cu descrierea problemei cititorului de mai sus, există câteva elemente suplimentare pe care trebuie să le luăm în considerare:

  • La momentul prăbușirii, Explorer încerca, dar nu putea, să populeze afișarea listei.
  • Incapacitatea de a accesa unitățile după ce desktopul s-a refăcut, poate indica un alt proces sau mai multe dintre acele dispozitive blocate, împiedicând astfel accesul de la recent creat explorer.exe proces.
  • Alergare sfc / scanare și obținerea unei facturi de sănătate curate, aruncă resursele protejate de Windows în partea de jos a listei pentru examinare. Alte cauze sunt mult mai probabile.

Corecțiile sunt introduse

În acest caz particular, există trei domenii în care aș căuta o soluție. Primul implică serviciul Căutare Windows, al doilea implică investigarea extensiilor shell, iar ultima ar fi redistribuirile VC ++.

Căutare Windows

Deoarece ecranul original arată blocarea care se întâmplă când Explorer încearcă să populeze listview, este posibil ca serviciul Căutare Windows să blocheze accesul la resursele necesare. Am văzut că se întâmplă acest lucru atunci când serviciul se blochează și nu are parametrii corecti de repornire.

presa Câștigă + R> tip services.msc> OK pentru a porni consola de management cu modulul de servicii. Derulați în jos la Căutare Windows și faceți dublu clic pe intrare pentru a deschide dialogul Proprietăți. Asigurați-vă că setările din fila Recuperare se potrivesc cu imaginea de mai jos.

ferestre-căutare-proprietăți

Cea mai frecventă problemă este setarea „Restart service after:”. Această eroare apare frecvent când această setare este zero.

Extensii problematice ale cochiliei

Descarca ShellExView de Nirsoft pentru arhitectura sistemului (x86 sau x64), instalați-o și rulați-o. Va dura un pic de timp pentru a examina sistemul și a completa tabelul cu date. Parcurgeți coloana de timp modificat CLSID și faceți clic pe antet pentru a sorta acest câmp. Dacă doriți să excludeți modulele furnizate de Microsoft, puteți accesa Opțiuni> Ascundeți toate extensiile Microsoft. Pentru cei care utilizează o versiune pe Windows pe 64 de biți, poate doriți să afișați extensiile pe 32 de biți pe sistem accesând Opțiuni> Afișare extensii Shell pe 32 de biți.

Căutați extensii care au fost adăugate chiar înainte de începerea simptomelor. Selectați unul sau mai multe și apăsați F7 sau mergi la Fișier> Dezactivare elemente selectatesau faceți clic pe pictograma LED roșu din bara de instrumente. În mod ideal, acest lucru ar trebui să fie făcut pe rând.

Test pentru a vedea dacă simptomele persistă. Dacă se întâmplă, puteți reactiva extensiile (extensiile) dezactivate anterior utilizând F8, Fișier> Activați elemente selectatesau pictograma cu bara de instrumente LED verde. De aici, dezactivați o extensie diferită și repetați procesul de testare până îl găsiți pe cel care cauzează problema.

Repararea / reinstalarea VC ++ Redistribuibile

Îl folosesc pe acesta ca ultimă soluție, dacă doar un singur program dă greșeli. Dacă aveți mai multe programe care au probleme cu erori de rulare VC ++, poate doriți să încercați acest lucru mai întâi.

Când priviți programele instalate pe sistemul meu (Panou de control> Programe și caracteristici), arată fiecare versiune a pachetelor redistribuibile (și unele actualizări ale acestora), variind de la versiunea 8 până la versiunea 12 (VC ++ 2005 până la VC ++ 2013). Le-am instalat din cauza instrumentelor de programare Microsoft pe care le folosesc. Majoritatea utilizatorilor nu vor avea toate acestea.

instalat-vcpp-REDIST

Puteți găsi cele mai recente descărcări pentru versiunile acceptate de Visual C ++ de la Microsoft. În scopurile noastre de aici, trebuie să vă preocupați doar de cele care sunt etichetate drept pachete „redistribuibile”. Link-urile care sunt clasificate ca pachete de servicii sunt destinate instrumentelor de programare, nu pur și simplu la rulare. Veți avea nevoie doar de cele care sunt listate în prezent în programele instalate pe sistemul dvs. Instalarea altor versiuni nu va ajuta în acest caz. Utilizatorii sistemelor de operare pe 64 de biți pot avea nevoie atât de versiunile x86 cât și de x64 ale CRT.

Windows Update verifică dacă computerul are cele mai recente actualizări pentru aceste pachete instalate, dar nu verifică dacă este instalat corect și nu a fost spart. Instalatorii pot verifica pentru a se asigura că toate fișierele de execuție sunt cele corecte și că toate intrările din registru sunt corecte.

După ce ați descărcat instalatorii corespunzători, executați-le pe sistem. Versiunile din 2005 vă vor solicita să acceptați un acord de licență înainte de a reinstala pachetul. Toate celelalte au o GUI care vă va întreba dacă doriți să reparați sau să dezinstalați instalarea existentă. În cele mai multe cazuri, o operație de reparare va rezolva problemele.

Dacă doriți să încercați cea mai extremă metodă, puteți dezinstala timpul de rulare, reporniți aparatul, apoi reinstalați-le. Nu recomand această metodă cu rulajele din 2005 și 2008. Fără ele, Windows va genera o mulțime de erori și o mare funcționalitate nu va fi acolo pentru dvs. la repornire.

Concluzie

Cu un pic de observație, o notă de încercare și eroare și unele înțelegeri despre cum sunt generate erorile runtimes pe sistem, problemele software pot fi găsite și rezolvate fără a apela la instrumente complicate de depanare și busteni.

Ați găsit erori de rulare pe sistemul dvs. Ce era necesar pentru rezolvarea lor? Anunță-mă în comentariile de mai jos.

Bruce se joacă cu electronica încă din anii '70, calculatoarele de la începutul anilor '80 și răspunzând cu exactitate la întrebări despre tehnologie pe care nu le-a folosit și nici nu le-a văzut întreaga perioadă. De asemenea, se enervează prin încercarea de a cânta la chitară.