reklama
Sdílené knihovny ve Windows zefektivňují programování pro programátora, který nemusí znovu vynalézat kolo pokaždé, když potřebuje provést společný úkol. Usnadňují také připojování bezpečnostních děr do sdíleného kódu, když jsou nalezeny, protože musí být opraveny na méně místech a nevyžaduje překompilovat každou aplikaci.
Přes tyto pozitivní aspekty mohou při pokusu o řešení hlavní příčiny chybových zpráv, které mohou vygenerovat, představovat své vlastní problémy.
Otázka našeho čtenáře:
Jak mohu vyřešit problém se systémem Windows Vista 32-bit C: \ Windows \ explorer.exe na počítači Dell Inspiron 530?
Po kliknutí na tlačítko OK v dialogu na obrazovce se obrazovka zčerná a vrátí se k normálnímu stavu běží, ale nedovolí mi přístup k jednotkám C, D a občas k jednotce E, když se k nim pokouším přistupovat z Mého Počítač.
Běh sfc / scannow nenalezl žádné chyby. Stáhl jsem aktualizace z webových stránek společnosti Dell i společnosti Microsoft a snažil se tento problém vyřešit. Nainstaloval jsem také redistribuovatelný balíček Microsoft Visual C ++ 2010 (x86). Počítač je v souladu s aktualizací Windows Update zcela aktuální.
Bruceova odpověď:
Poznámka: Diskuze o Průzkumníkovi Windows v systému Windows 7 a starších verzích platí také pro Průzkumníka souborů v systému Windows 8 a novějších verzích. Pokud mezi nimi bude výrazný rozdíl, bude to výslovně uvedeno.
Windows Shell
Průzkumník Windows je prostředí a běží jako proces explorer.exe, jak je vidět ve Správci úloh nebo Průzkumník procesů Sysinternals Process Explorer - nejúčinnější náhrada Správce úloh [Windows]Buďme upřímní, Správce úloh systému Windows není tak skvělý pro porozumění a správu procesů spuštěných v počítači. Dokonce i ve Windows 8, kde je mnohem vylepšen, se správce úloh nemůže přiblížit ... Přečtěte si více . Stejně jako mnoho jiných programů Windows není veškerá funkčnost prostředí poskytována do jediného spustitelného souboru. Existují desítky dalších EXE a Soubory DLL Jak opravit chyby chybějících DLL souborů Přečtěte si více slouží k implementaci listů vlastností, popisovačů vlastností, popisovačů náhledu, kontextových nabídek a mnoha dalších prvků, které každý den používáte v Průzkumníkovi Windows.
Extensible Shell
Rozšíření prostředí umožňují programátorům snadno přidat funkce do Průzkumníka Windows tak, že napíšou knihovnu DLL, aby provedli úkolu a registraci DLL v operačním systému, takže Explorer ví, kde najít kód pro splnění úkol. Například, 7-Zip Jak extrahovat soubory ze ZIP, RAR, 7z a dalších běžných archivůSetkali jste se někdy se souborem .rar a zajímalo by vás, jak jej otevřít? Naštěstí je správa souborů ZIP a jiných komprimovaných archivů pomocí správných nástrojů jednoduchá. Zde je to, co potřebujete vědět. Přečtěte si více přidává do standardní kontextové nabídky podnabídku, která umožňuje rychlý přístup k úkolům zpracování archivu Pevný disk Sentinel Sledujte své zdraví na HDD a SSD pomocí Sentinelu pevného diskuUž jste někdy měli selhání jednotky? Bohužel neexistuje všelék na prevenci poškození hardwaru. Sledování pevného disku nebo disku SSD, který bude jednat v době, kdy bude pravděpodobná jejich smrt, je však prvním krokem. Přečtěte si více přidává překryvy ikon ke standardním ikonám jednotky, takže můžete na první pohled vidět stav stavu jednotky a HashTab přidá nový list vlastností pro výpočet a zobrazení hashů vybraného souboru.
Mnoho těchto rozšíření prostředí je implementováno jako servery COM (Component Object Model) v procesu. To znamená, že pokud proces, v tomto případě Průzkumník Windows, použije rozšíření, nezobrazí se ve Správci úloh nebo Průzkumníkovi procesů jako samostatný spuštěný proces s vlastním identifikátorem procesu (PID). Místo toho se provádí uvnitř procesu volání explorer.exe.
Výchozí proces jedné instance
Průzkumník Windows je napsán tak, aby mohl běžet jako dva samostatné procesy, ale ve své výchozí konfiguraci bude spuštěn pouze jedna instance. Při prvním spuštění v rámci spouštěcího procesu se vytvoří pracovní plocha systému Windows. Jeho opětovné vytvoření vytvoří nové vlákno ve stávajícím procesu, které místo běžného procesu zobrazí okno pro správu známých souborů.
Toto chování umožňuje sníženou stopu paměti, ale může také přinést své vlastní malé twist při řešení problémů. Kritická chyba nebo neošetřená výjimka v kódu prováděném v procesu Průzkumníka.exe, včetně serverů v procesu poskytovaných knihovnami DLL, způsobí, že s tím celé prostředí desktopu klesne.
Ve většině případů bude proces plochy automaticky restartován. Pokud se nerestartuje, měli byste stále mít možnost vyvolat Správce úloh pomocí Ctrl-Shift-Esc. Odtud jděte na Soubor> Nový úkol (spustit…)> typ explorer.exe> OK restartujte proces.
Tomu lze zabránit jednoduchou změnou. otevřeno Průzkumník Windows> Uspořádat> Možnosti složky a hledání ve Vista / 7. Pro Windows 8 a novější otevřete Průzkumník souborů> Zobrazit> Možnosti> Změnit složku a možnosti hledání. Vybrat Karta Zobrazit a zkontrolovat Spouštějte okna složek v samostatném procesu.
Změnou tohoto nastavení se izoluje proces plochy od všech ostatních otevřených oken Průzkumníka Windows. Pokud dojde k selhání některého z těchto oken Průzkumníka, zůstane vaše plocha nezraněná.
Knihovna Microsoft Visual C ++ Runtime Library (CRT)
Knihovna Microsoft Visual C ++ Runtime Library poskytuje rutiny pro programování systému Windows, které automatizují mnoho úkolů, jako je vstup / výstup, manipulace se soubory, přidělování paměti, systémová volání a mnoho dalších.
Každá instalace systému Windows bude mít nainstalovány alespoň dvě různé verze CRT. Nově postavený počítač Vista SP2 prostřednictvím systému Windows 10 bude mít verze 8.0 a 9.0 (VC 2005 a VC 2008). Pokud je nainstalován další software, může také zahrnovat novější verze runtime, v závislosti na verzi Visual C ++, která byla použita k vytvoření programu nebo jeho součástí.
Chyby za běhu
Pokud dojde k chybě nebo výjimce v kusu kódu, v ideálním případě bude zpracována co nejdříve možné v aktuálně provádějícím postupu a buďto opravit nebo umožnit půvabnou selhání. Pokud chyba není zpracována místně, bude předána kódu, který volal aktuálně provádějící kód, a proces pokračuje, dokud nebude zpracována výjimka. Pokud dokončí běh na vrchol řetězu a stále se s ním nezachází, vygeneruje chybu runtime, jak je vidět výše.
Když uživatel klepne na tlačítko OK, proces bude ukončen. Pokud má program definované chování při selhání, jako jsou kritické služby, nebo je jeho provozní stav monitorován jiným procesem, může být automaticky resawned. To se děje v tomto případě. Po ukončení procesu explorer.exe obrazovka ztmavne a po restartování procesu explorer.exe se pracovní plocha vrátí.
Přestože výše uvedená chybová zpráva jasně naznačuje, že pochází z procesu explorer.exe, není pravděpodobné, že by to byl problém se samotným explorer.exe. Je mnohem pravděpodobnější, že viník leží jinde, například rozšíření třetích stran, které používá Průzkumník.
Další úvahy
S výše uvedeným popisem problému našeho čtenáře musíme vzít v úvahu několik dalších položek:
- V době havárie se Explorer pokoušel, ale nemohl, naplnit seznam.
- Neschopnost přístupu k jednotkám po resawnování plochy může znamenat, že jiný proces má jeden nebo více těchto zařízení uzamčena, čímž brání přístupu z nově vytvořeného průzkumníka.exe proces.
- Běh sfc / scannow a získání čistého zdravotního stavu přesune prostředky chráněné systémem Windows na konec seznamu k posouzení. Jiné příčiny jsou mnohem pravděpodobnější.
Opravy jsou v
V tomto konkrétním případě bych hledal řešení tři oblasti. První zahrnuje službu Windows Search, druhá zahrnuje prozkoumání rozšíření prostředí a poslední by byly samotné redistribuovatelné soubory VC ++.
Windows Search
Protože původní snímek obrazovky ukazuje pád, ke kterému došlo, když se Explorer pokouší naplnit Listview, je možné, že služba Windows Search blokuje přístup k požadovaným prostředkům. Viděl jsem, že k tomu dochází, když dojde k chybě služby a nemá správné parametry restartu.
lis Win + R> typ services.msc> OK spuštění konzoly pro správu s modulem services. Přejděte dolů na Windows Search a poklepáním na položku otevřete dialogové okno Vlastnosti. Zkontrolujte, zda se nastavení na kartě Obnovení shoduje s obrázkem níže.
Nejčastějším problémem je nastavení „Restartovat službu po:“. K této chybě často dochází, když je toto nastavení nenulové.
Problematická rozšíření shellu
Stažení ShellExView od společnosti Nirsoft pro architekturu systému (x86 nebo x64) ji nainstalujte a spusťte. Prozkoumání systému a vyplnění tabulky daty zabere trochu času. Přejděte do sloupce Modifikovaný čas CLSID a kliknutím na záhlaví se řaďte v tomto poli. Pokud si přejete vyloučit moduly poskytované společností Microsoft, můžete přejít na Možnosti> Skrýt všechna rozšíření Microsoft. Pro ty, kteří používají 64bitovou verzi systému Windows, možná budete chtít také zobrazit 32bitové rozšíření v systému Možnosti> Zobrazit 32bitové rozšíření prostředí.
Hledejte rozšíření, která byla přidána těsně před začátkem příznaků. Vyberte jeden nebo více a stiskněte F7 nebo jít do Soubor> Zakázat vybrané položkynebo klikněte na červenou ikonu LED na panelu nástrojů. V ideálním případě by to mělo být prováděno po jednom.
Otestujte, zda příznaky přetrvávají. Pokud ano, můžete znovu povolit dříve deaktivovaná rozšíření pomocí F8, Soubor> Povolit vybrané položkynebo zelená ikona panelu nástrojů LED. Odtud zakažte jiné rozšíření a opakujte testovací proces, dokud nenajdete ten, který způsobuje problém.
Opravit / znovu nainstalovat VC ++ Redistributables
Používám tento jako poslední možnost, pokud pouze jeden program kope chyby. Pokud máte více programů, které mají problémy s chybami runtime VC ++, můžete to zkusit nejdříve.
Při pohledu na nainstalované programy v mém systému (Ovládací panely> Programy a funkce), zobrazuje všechny verze redistribuovatelných balíčků (a některé jejich aktualizace) od verze 8 do verze 12 (VC ++ 2005 až VC ++ 2013). Mám je nainstalován kvůli programovacím nástrojům společnosti Microsoft, které používám. Většina uživatelů nebude mít všechny tyto.
Můžete najít nejnovější soubory ke stažení pro podporované verze Visual C ++ od společnosti Microsoft. Pro naše účely se zde musíte starat pouze o ty, které jsou označeny jako „redistribuovatelné“ balíčky. Odkazy, které jsou klasifikovány jako aktualizace Service Pack, se vztahují na programovací nástroje, nikoli pouze na runtime. Budete potřebovat pouze ty, které jsou aktuálně uvedeny v nainstalovaných programech ve vašem systému. Instalace dalších verzí v tomto případě nepomůže. Uživatelé 64bitových operačních systémů mohou potřebovat obě verze CRT x86 i x64.
Windows Update zkontroluje, zda má váš počítač nainstalované nejnovější aktualizace pro tyto balíčky, ale nekontroluje, zda je správně nainstalován a nebyl poškozen. Instalační pracovníci mohou zkontrolovat, zda jsou všechny soubory runtime správné a zda jsou všechny položky registru správné.
Po stažení příslušných instalačních programů je spusťte v systému. Verze 2005 vás vyzve k přijetí licenční smlouvy před opětovnou instalací balíčku. Všichni ostatní mají GUI, které se vás zeptá, zda chcete opravit nebo odinstalovat stávající instalaci. Ve většině případů opravná operace vyřeší všechny problémy.
Pokud chcete vyzkoušet nejextrémnější metodu, můžete odinstalovat runtime, restartovat počítač a znovu je nainstalovat. Tuto metodu nedoporučuji s runtimey 2005 a 2008. Bez nich bude systém Windows generovat spoustu chyb a při restartu vám nebude fungovat mnoho funkcí.
Závěr
S trochou pozorování, dotekem pokusu a omylu a určitým pochopením toho, jak jsou chyby generovány runtime v systému, softwarové problémy lze najít a vyřešit, aniž by se uchýlil ke složitým ladicí nástroje a protokoly.
Setkali jste se ve vašem systému s runtime chybami? Co bylo nutné k jejich řešení? Dejte mi vědět v komentářích níže.
Bruce hraje s elektronikou od 70. let, s počítači od počátku 80. let a přesně odpovídá na otázky o technologii, kterou celou dobu nepoužíval ani neviděl. Také se otráví tím, že se pokouší hrát na kytaru.