Oglas

Zajedničke biblioteke u sustavu Windows čine programiranje mnogo učinkovitijim za programera koji ne treba iznova iznovavati kotač svaki put kada mu treba za obavljanje zajedničkog zadatka. Oni također lakše ubacuju sigurnosne rupe u zajednički kod kada se nađu jer ih je potrebno zakrpati na manje mjesta i ne zahtijeva da se svaka aplikacija ponovno sastavi.

Unatoč ovim pozitivnim aspektima, oni mogu predstavljati vlastite probleme pri pokušaju rješavanja uzroka grešaka koje mogu stvoriti.

Pitanje našeg čitatelja:

Kako mogu riješiti problem s 32-bitnim C: \ Windows \ Explor.exe za Windows Vista na Dell Inspiron 530?

Nakon što kliknete gumb U redu u dijaloškom okviru prikazanom na snimci zaslona, ​​zaslon će se ugasiti i vratiti u normalu trčanje, ali neće mi dopustiti pristup C, D, a ponekad i E pogonu kada im pokušavam pristupiti s My Računalo.

Trčanje sfc / scannow ne pronalazi nikakve pogreške Preuzimao sam ažuriranja s web stranice Dell i Microsoft koji pokušavaju riješiti ovaj problem. Instalirao sam i Microsoft Visual C ++ 2010 Redistributable paket (x86). Računalo je potpuno ažurno prema Windows Updateu.

instagram viewer

runtime-pogreška

Bruceov odgovor:

Napomena: Rasprave o programu Windows Explorer u sustavu Windows 7 i starijim verzijama također se primjenjuju na File Explorer u sustavu Windows 8 i novijim verzijama. Ako među njima postoji značajna razlika, to će biti izričito navedeno.

Windows Shell

Windows Explorer je školjka i pokreće se kao istraživač.exe postupak kao što se vidi u upravitelju zadataka ili Istraživač procesa Sysinternalsa Process Explorer - Zamjena najmoćnijeg upravitelja zadataka [Windows]Budimo iskreni, upravitelj zadataka Windows nije baš sjajan za razumijevanje i upravljanje procesima koji se izvode na vašem računalu. Čak i u sustavu Windows 8, gdje je znatno poboljšan, upravitelj zadataka ne može se približiti ... Čitaj više . Kao i mnogi drugi Windows programi, sva funkcionalnost koju pruža ljuska nije ugrađena u jednu jedinstvenu izvršnu datoteku. Postoje deseci drugih EXE i DLL datoteke Kako riješiti nestale pogreške DLL datoteke Čitaj više koristi se za implementaciju lista svojstava, alata za obradu imovine, alata za pregled, kontekstnih izbornika i mnogih drugih elemenata koje u programu Windows Explorer koristite svakodnevno.

Proširiva školjka

Proširenja školjki omogućuju programerima da lako dodaju funkcionalnost Windows Exploreru tako što će napisati DLL za obavljanje zadatak i registraciju DLL-a s operativnim sustavom, tako da Explorer zna gdje treba pronaći kôd za izvršavanje zadatak. Na primjer, 7-Poštanski Kako izdvojiti datoteke iz ZIP-a, RAR-a, 7z-a i ostalih uobičajenih arhivaJeste li se ikada suočili s .rar datotekom i pitali ste se kako je otvoriti? Srećom, s pravim alatima je jednostavno upravljanje ZIP datotekama i drugim komprimiranim arhivima. Evo što trebate znati. Čitaj više dodaje podmeni u standardni kontekstni izbornik, što daje brz pristup zadacima rukovanja arhivom, Sentinel tvrdog diska Pratite svoje zdravlje tvrdog diska i Sentinel tvrdog diskaJeste li ikada imali neuspjeh u pogonu? Nažalost, ne postoji parana za sprečavanje oštećenja hardvera. Ali praćenje vašeg tvrdog diska ili SSD-a, kako biste djelovali kada njihova smrt postane vjerojatna, prvi je korak. Čitaj više dodaje ikone slojeva na standardne ikone pogona, tako da na prvi pogled možete vidjeti zdravstveno stanje pogona i HashTab dodaje novi list svojstava kako bi izračunao i prikazao hasheve odabrane datoteke.

kontekst izbornika

Mnoga od tih proširenja ljuske implementirana su kao poslužitelji komponentnog modela objekta (COM) u procesu. To znači da kada neki postupak, u ovom slučaju Windows Explorer, koristi proširenje, neće se pojaviti u upravitelju zadataka ili pregledniku procesa kao zaseban pokretani proces sa vlastitim identifikatorom procesa (PID). Umjesto toga, izvršava se u procesu pozivanja explorer.exe.

Zadani postupak pojedinačne instance

Windows Explorer je napisan da bi se mogao izvoditi kao dva odvojena procesa, ali - u zadanoj konfiguraciji - pokrenut će samo jednu instancu. Kad se prvi put izvodi kao dio postupka pokretanja, stvara Windows radnu okolinu. Izvođenje ga ponovo stvara novu nit u postojećem procesu, koji prikazuje poznati okvir za upravljanje datotekama, umjesto da pokreće novi proces.

Ovakvo ponašanje omogućuje smanjeni otisak memorije, ali može donijeti i svoj mali zaokret prilikom rješavanja problema. Kritična pogreška ili neobrađena iznimka u kôdu koji se izvršava u Explor.exe postupku, uključujući poslužitelje u obradi koji pružaju DLL-ovi, uzrokovat će da se s njim sruši cijelo radno okruženje.

U većini slučajeva proces radne površine automatski će se pokrenuti. Ako se ne ponovno pokrene, i dalje biste trebali koristiti Ctrl-Shift-Esc za pokretanje Upravitelja zadataka. Odatle idite na Datoteka> Novi zadatak (Pokreni ...)> tip explor.exe> ​​OK za ponovno pokretanje postupka.

To se može izbjeći jednostavnom promjenom. Otvorena Windows Explorer> Organiziraj> Opcije mapa i pretraživanja u Visti / 7. Otvorite Windows 8 i novije verzije File Explorer> View> Options> Change folder and search search. Odaberite Kartica Prikaži i provjeriti Pokrenite prozore mapa u zasebnom procesu.

mapa opcijama

Promjena ove postavke izolira radnu površinu od svih ostalih prozora Windows Explorera koje imate otvoreno. Ako se neki od tih prozora Explorera sruši, radna površina će ostati neoštećena.

Microsoft Visual C ++ Runtime knjižnica (CRT)

Microsoft Visual C ++ Runtime Library nudi rutine za programiranje Windows-a koji automatiziraju mnoge zadatke, poput ulaza / izlaza, manipulacije datotekama, dodjele memorije, sistemskih poziva i mnogih drugih.

Svaka Windows instalacija imat će najmanje dvije različite verzije CRT-a. Svježe izgrađena Vista SP2 kroz Windows 10 stroj imat će i verzije 8.0 i 9.0 (VC 2005 i VC 2008). Kada se instalira dodatni softver, on može uključivati ​​i novije verzije vremena izvršavanja, ovisno o tome koja se inačica Visual C ++ koristila za stvaranje programa ili bilo koje njegove komponente.

Pogreške tijekom rada

Kada se u komadu koda nađe pogreška ili izuzetak, idealno će se s njim postupati čim prije moguće u trenutačno izvršnom postupku, ili se ispraviti ili omogućiti graciozan neuspjeh. Ako se pogreška ne rješava lokalno, prosljeđuje se kôdu koji je nazvao trenutno izvršavajući kôd, a postupak se nastavlja sve dok se ne obradi iznimka. Ako dovrši trčanje do vrha lanca i dalje se ne rukuje, generirat će se pogreška izvršavanja kao što se vidi gore.

Kad korisnik klikne gumb U redu, postupak će biti zaustavljen. Ako program ima definirano ponašanje neuspjeha, kao što su kritične usluge ili njegovo stanje pokretanja nadzire neki drugi postupak, može se automatski ponovno obnoviti. To se događa u ovom slučaju. Zaslon se zatvara kada se postupakr.r.ee zaustavi, a zatim se radna površina vraća kad se postupak istraživač.exe ponovo pokrene.

Iako gornja poruka o pogrešci jasno upućuje da potiče iz postupka explorer.exe, vjerovatno neće biti problema sa samim explor.exe. Vjerojatnije je da je krivac negdje drugdje, poput proširenja treće strane koje koristi Explorer.

Ostala razmatranja

Uz gornji opis čitatelja, postoji nekoliko dodatnih stavki koje moramo uzeti u obzir:

  • U trenutku pada, Explorer je pokušavao, ali nije uspio, navesti popis.
  • Nemogućnost pristupa pogonima nakon što se radna površina ponovo razmnoži, može značiti da je ima i drugi postupak ili više tih uređaja zaključanih, što onemogućuje pristup novostvorenom Explor.exe postupak.
  • Trčanje sfc / scannow i čist račun za zdravlje, spusti resurse zaštićene sustavom Windows na dno popisa na razmatranje. Ostali su uzroci daleko vjerojatniji.

Popravci su unutra

U ovom konkretnom slučaju tri su područja za koja bih tražio rješenje. Prvo uključuje uslugu Windows Search, drugo uključuje ispitivanje ekstenzija školjki, a posljednje bi bile same VC ++ preraspodjele.

Windows pretraživanje

Budući da u originalnom snimku zaslona dolazi do pada dok se Explorer pokušava naseliti listview, moguće je da usluga pretraživanja Windows blokira pristup potrebnim resursima. Vidio sam da se to događa kada se usluga sruši i nema ispravne parametre za ponovno pokretanje.

tisak Win + R> tip usluge.msc> OK za pokretanje upravljačke konzole s modulom usluge. Pomaknite se prema dolje do Windows pretraživanja i dvaput kliknite na unos da biste otvorili dijaloški okvir Svojstva. Uvjerite se da se postavke na kartici Oporavak podudaraju sa slikom ispod.

Windows search-svojstva

Najčešći problem je postavka "Ponovo pokreni uslugu nakon:". Ova se pogreška često pojavljuje ako ova postavka nije jednaka nuli.

Problematična proširenja ljuske

preuzimanje datoteka Nirsoft-ov ShellExView instalirajte i pokrenite za vašu arhitekturu sustava (x86 ili x64). Trebat će malo vremena da se ispita sustav i ispuni tablica podacima. Pomičite se do stupca CLSID Modificirano vrijeme i kliknite na zaglavlje da biste poredali ovo polje. Ako želite izuzeti module koje nudi Microsoft, možete se obratiti Opcije> Sakrij sva Microsoftova proširenja. Za one koji koriste 64-bitnu verziju sustava Windows, možda biste trebali prikazati i 32-bitna proširenja u sustavu tako da otvorite Opcije> Prikaži 32-bitna proširenja školjki.

Potražite ekstenzije koje su dodane prije nego što su simptomi počeli. Odaberite jedno ili više i pritisnite F7 ili otići Datoteka> Onemogući odabrane stavkeili kliknite crvenu ikonu LED na alatnoj traci. U idealnom slučaju, to bi trebalo raditi jedan po jedan.

Ispitajte je li simptomi trajni. Ako to učine, možete ponovno omogućiti prethodno onemogućena proširenja pomoću F8, Datoteka> Omogući odabrane stavkeili zelenu ikonu LED alatne trake. Odavde onemogućite neko drugo proširenje i ponavljajte postupak testiranja sve dok ne pronađete onaj koji uzrokuje problem.

Popravite / ponovno instalirajte VC ++ preraspodjelu

Koristim ovo kao krajnje sredstvo, ako samo jedan program otkrije pogreške. Ako imate više programa koji imaju problema s VC ++ greškama izvođenja, možda biste trebali isprobati ovo prvo.

Kada pregledavate instalirane programe na mom sustavu (Upravljačka ploča> Programi i značajke), prikazuje sve verzije paketa za redistribuciju (i neka njihova ažuriranja) u rasponu od verzije 8 do verzije 12 (VC ++ 2005 do VC ++ 2013). Instalirao sam ih zbog Microsoftovih programskih alata koji koristim. Većina korisnika neće imati sve to.

instaliran-vcpp-REDIST

Možete ih pronaći najnovija preuzimanja za podržane verzije Visual C ++ od Microsofta. U naše svrhe ovdje trebate se baviti samo onima koji su označeni kao "redistributivni" paketi. Veze koje su klasificirane kao servisni paketi odnose se na programske alate, a ne samo na vrijeme izvođenja. Trebat će vam samo oni koji su trenutno navedeni u instaliranim programima na vašem sustavu. Instaliranje drugih verzija u ovom slučaju neće pomoći. Korisnici 64-bitnih operativnih sustava možda trebaju i x86 i x64 verzije CRT-a.

Windows Update provjerava je li na vašem računalu instalirana najnovija ažuriranja za ove pakete, ali ne provjerava je li ispravno instaliran i nije li slomljen. Instalacijski programi mogu provjeriti jesu li sve runtime datoteke ispravne i jesu li svi unosi u registar točni.

Nakon što preuzmete odgovarajuće instalacijske programe, pokrenite ih na sustavu. Inačice iz 2005 tražit će vas da prihvatite licenčni ugovor prije ponovne instalacije paketa. Svi ostali imaju GUI koji će vas pitati želite li popraviti ili deinstalirati postojeću instalaciju. U većini slučajeva, popravka će popraviti sve probleme.

Ako želite isprobati najekstremniju metodu, možete deinstalirati vrijeme izvođenja, ponovo pokrenuti uređaj i ponovo ih instalirati. Ne preporučujem ovu metodu za vrijeme izvođenja 2005. i 2008. godine. Bez njih Windows će generirati puno pogrešaka i mnogo funkcionalnosti neće vam biti dostupno prilikom ponovnog pokretanja.

Zaključak

Uz malo promatranja, dodir pokušaja i pogreške i malo razumijevanja kako se generiraju pogreške Runtimes na sustavu, softverska pitanja mogu se pronaći i riješiti bez pribjegavanja kompliciranim alatima za uklanjanje pogrešaka i prijavljuje.

Jeste li naišli na runtime pogreške na vašem sustavu? Što je bilo potrebno za njihovo rješavanje? Javite mi u komentarima u nastavku.

Bruce se igrao s elektronikom od 70-ih, računalima od ranih 80-ih i točno je odgovarao na pitanja o tehnologiji koje nije koristio niti vidio cijelo vrijeme. Također se nervira pokušajem sviranja gitare.