реклама

Споделените библиотеки в Windows правят програмирането много по-ефективно за програмиста, който не се нуждае от изобретяване на колелото всеки път, когато трябва да изпълни обща задача. Освен това те улесняват включването на дупки за сигурност в споделения код, когато се намерят, тъй като трябва да бъдат залепени на по-малко места и не изисква всяко приложение да се прекомпилира.

Въпреки тези положителни аспекти, те могат да създават свои собствени проблеми при опит за отстраняване на първопричината за съобщенията за грешки, които могат да генерират.

Въпрос на нашия читател:

Как да поправя проблема с 32-битов C: \ Windows \ explor.exe на Windows Vista на Dell Inspiron 530?

След като щракнете върху бутона OK в диалоговия прозорец, показан на екрана, екранът ще почернее и ще се върне към нормалното работи, но няма да ми позволи да достъпя C, D и понякога до E устройството при опит за достъп до тях от My Computer.

Работещи sfc / scannow не открива грешки Изтеглих актуализации и от уебсайтовете на Dell и Microsoft, опитвайки се да разреша този проблем. Инсталирах също преразпределимия пакет Microsoft Visual C ++ 2010 (x86). Компютърът е напълно актуален според Windows Update.

instagram viewer

Времетраене грешка

Отговор на Брус:

Забележка: Дискусиите за Windows Explorer в Windows 7 и по-старите версии се отнасят и за File Explorer в Windows 8 и по-нови версии. Ако има забележима разлика между тях, тя ще бъде изрично посочена.

Windows Shell

Windows Explorer е черупката и се изпълнява като explor.exe процеса, както се вижда в Task Manager или Изследовател на процеси на Sysinternals Process Explorer - най-мощната подмяна на диспечера на задачи [Windows]Нека бъдем честни, Windows Task Manager не е толкова добър за разбиране и управление на процесите, работещи на вашия компютър. Дори в Windows 8, където той е много подобрен, мениджърът на задачи не може да се доближи до ... Прочетете още . Подобно на много други програми за Windows, цялата функционалност, предоставена от черупката, не е включена в този единствен изпълним файл. Има десетки други EXE и DLL файлове Как да коригирате липсващи грешки в DLL файла Прочетете още използва се за внедряване на списъци със свойства, обработващи свойства, обработващи визуализации, контекстни менюта и много други елементи, които използвате в Windows Explorer всеки ден.

Разтегателна черупка

Разширенията на Shell позволяват на програмистите лесно да добавят функционалност към Windows Explorer, като напишат DLL за изпълнение задача и регистриране на DLL с операционната система, така че Explorer знае къде да намери кода за изпълнение задача. Например, 7-Zip Как да извлечете файлове от ZIP, RAR, 7z и други общи архивиСлучвало ли ви се е да се сблъскате с .rar файл и се чудехте как да го отворите? За щастие, управлението на ZIP файлове и други компресирани архиви е лесно с правилните инструменти. Ето какво трябва да знаете. Прочетете още добавя подменю към стандартното контекстно меню, като предоставя бърз достъп до задачите за обработка на архиви, Sentinel на твърд диск Дръжте окото на вашето HDD и SSD здраве с твърд диск SentinelИмали ли сте някога неуспех на задвижването? За съжаление няма панацея за предотвратяване на повреда на хардуера. Но наблюдението на вашия HDD или SSD, за да действате, когато смъртта им стане вероятна, е първа стъпка. Прочетете още добавя наслагвания на иконите към стандартните икони на устройството, така че можете да видите здравословното състояние на устройството с един поглед и HashTab добавя нов лист за свойствата, за да изчисли и покаже хешовете на избрания файл.

контекстно меню

Много от тези разширения на черупките са реализирани като сървъри на Component Object Model (COM) в процес. Това означава, че когато процес, в случая Windows Explorer, използва разширението, той няма да се появи в Task Manager или Process Explorer като отделен стартиран процес със собствен идентификатор на процес (PID). Вместо това той се изпълнява в процеса на извикване explorer.exe.

Процес по единичен инстанция

Windows Explorer е написан, че може да работи като два отделни процеса, но - в конфигурацията си по подразбиране - той ще изпълнява само един екземпляр. Когато за първи път се изпълнява като част от процеса на стартиране, той създава работната среда на Windows. Изпълнението му отново създава нов поток в съществуващия процес, който показва познатия прозорец за управление на файлове, вместо да стартира нов процес.

Това поведение позволява намален отпечатък на паметта, но също така може да доведе до своя малък обрат при отстраняване на проблеми. Критична грешка или необработено изключение в кода, изпълняван в explor.exe процеса, включително сървърите в процес, предоставени от DLL, ще доведе до намаляване на цялата работна среда на работния плот.

В повечето случаи процесът на работния плот ще се стартира автоматично. Ако не се рестартира, все още трябва да можете да използвате Ctrl-Shift-Esc, за да изведете диспечера на задачите. Оттам отидете на Файл> Нова задача (Изпълнение…)> Тип explor.exe> ​​OK за да рестартирате процеса.

Това може да се избегне с проста промяна. отворено Windows Explorer> Организиране> Опции за папки и търсене във Vista / 7. За Windows 8 и по-нови версии отворете File Explorer> Изглед> Опции> Промяна на папки и опции за търсене. Изберете Раздел „Преглед“ и проверете Стартирайте прозорците на папките в отделен процес.

папка-опции

Промяната на тази настройка изолира процеса на вашия работен плот от всички останали отворени прозорци на Windows Explorer. Ако някой от тези прозорци на Explorer се срине, вашият работен плот ще остане незасегнат.

Microsoft Visual C ++ Runtime Library (CRT)

Microsoft Visual C ++ Runtime Library предоставя процедури за програмиране на Windows, които автоматизират много задачи, като вход / изход, манипулиране на файлове, разпределение на паметта, системни обаждания и много други.

Всяка инсталация на Windows ще има инсталирани поне две различни версии на CRT. Току-що вградена Vista SP2 през Windows 10 машина ще има както версии 8.0, така и 9.0 (VC 2005 и VC 2008, съответно). Когато е инсталиран допълнителен софтуер, той може да включва и по-нови версии на времената на изпълнение, в зависимост от това коя версия на Visual C ++ е била използвана за създаване на програмата или някой от нейните компоненти.

Грешки по време на изпълнение

Когато в част от кода се срещне грешка или изключение, в идеалния случай тя ще бъде обработена възможно най-скоро възможно е в текущата изпълняваща процедура и или да бъде коригирана, или да позволи грациозно недостатъчност. Ако грешката не се обработва локално, тя се предава на кода, който извиква текущия изпълняващ код, и процесът продължава, докато не се обработи изключението. Ако приключи с пускането до върха на веригата и тя все още не се обработва, ще генерира грешка по време на изпълнение, както се вижда по-горе.

Когато потребителят натисне бутона OK, процесът ще бъде прекратен. Ако програмата има дефинирано поведение на отказ, като например критични услуги или състоянието на нейното изпълнение се следи от друг процес, тя може да бъде автоматично възстановена. Това се случва в този случай. Екранът се зачернява, когато процесът наr.r.ee се прекратява, а след това работният плот се връща при повторен старт на процеса на проучване.

Въпреки че съобщението за грешка по-горе ясно показва, че е дошло от процеса explorer.exe, вероятно няма да е проблем със самия explorer.exe. Много по-вероятно е виновникът да се крие другаде, като например разширение на трета страна, което се използва от Explorer.

Други съображения

С описанието на нашия читател на проблема по-горе, има няколко допълнителни елемента, които трябва да вземем под внимание:

  • В момента на катастрофата Explorer се опитваше, но не успя, да попълни списъчния изглед.
  • Невъзможността за достъп до устройствата, след като работният плот се е разредил, може да показва, че друг процес има такъв или повече от тези устройства, които са заключени, като по този начин се предотвратява достъпът от новосъздадения Explor.exe процес.
  • Работещи sfc / scannow и получавайки чиста сметка за здравето, изпуска ресурсите, защитени от Windows, в края на списъка за разглеждане. Други причини са много по-вероятни.

Поправките са вътре

В този конкретен случай има три области, в които бих потърсил решение. Първият включва услугата за търсене на Windows, вторият включва проучване на разширенията на черупките, а последният ще бъдат самите VC ++ преразпределящи се.

Търсене в Windows

Тъй като оригиналният екран показва срив, който се случва, когато Explorer се опитва да попълни listview, възможно е услугата за търсене на Windows да блокира достъпа до необходимите ресурси. Видях това да се случва, когато услугата се срине и няма правилните параметри за рестартиране.

Натиснете Win + R> Тип services.msc> OK за стартиране на конзолата за управление с модула за услуги. Превъртете надолу до Търсене в Windows и щракнете двукратно върху записа, за да отворите диалоговия прозорец Свойства. Уверете се, че настройките на раздела Възстановяване съвпадат с изображението по-долу.

Windows, търсенето на имоти

Най-често срещаният проблем е настройката „Рестартиране на услугата след:“. Тази грешка често се появява, когато тази настройка е ненулева.

Проблемни разширения на черупките

Изтегли ShellExView на Nirsoft за вашата системна архитектура (x86 или x64), инсталирайте и стартирайте. Ще отнеме малко време, за да разгледате системата и да попълните таблицата с данни. Превъртете до колоната CLSID Modified Time и кликнете върху заглавката, за да сортирате в това поле. Ако искате да изключите модулите, предоставени от Microsoft, можете да отидете на Опции> Скриване на всички разширения на Microsoft. За тези, които използват 64-битова версия на Windows, може също да искате да покажете 32-битовите разширения в системата, като отидете на Опции> Покажи 32-битови разширения на Shell.

Потърсете разширения, които бяха добавени точно преди да започнат симптомите. Изберете един или повече и натиснете F7 или отидете на Файл> Деактивиране на избраните елементиили кликнете върху червената LED икона в лентата с инструменти. В идеалния случай това трябва да се прави едно по едно.

Проверете дали симптомите продължават. Ако го направят, можете да активирате отново разширеното (ите) разширение (и), като използвате F8, Файл> Активиране на избраните елементиили иконата на зелена LED лента с инструменти. От тук деактивирайте различно разширение и повтаряйте процеса на тестване, докато не намерите това, което причинява проблема.

Ремонт / повторно инсталиране на VC ++ Преразпределими

Използвам това в краен случай, ако само една програма изхвърля грешки. Ако имате няколко програми, които имат проблеми с грешките по време на изпълнение на VC ++, може да искате първо да опитате това.

Когато гледам инсталираните програми в системата ми (Контролен панел> Програми и функции), показва всяка версия на преразпределимите пакети (и някои от техните актуализации), вариращи от версия 8 до версия 12 (VC ++ 2005 до VC ++ 2013). Имам ги инсталирани заради инструментите за програмиране на Microsoft, които използвам. Повечето потребители няма да имат всичко това.

инсталирана-vcpp-REDIST

Можете да намерите последните изтегляния за поддържани версии на Visual C ++ от Microsoft. За нашите цели тук трябва да се занимавате само с тези, които са етикетирани като „преразпределяеми“ пакети. Връзките, които са класифицирани като сервизни пакети, са за инструментите за програмиране, а не просто по време на изпълнение. Ще ви трябват само тези, които в момента са изброени в инсталираните програми на вашата система. Инсталирането на други версии няма да помогне в този случай. Потребителите на 64-битови операционни системи може да се нуждаят както от x86, така и x64 версиите на CRT.

Windows Update проверява дали на вашия компютър са инсталирани най-новите актуализации за тези пакети, но не проверява дали е инсталиран правилно и не е бил счупен. Инсталаторите могат да проверят дали всички файлове за изпълнение са правилните и всички записи в регистъра са правилни.

След като изтеглите съответните инсталатори, стартирайте ги в системата. Версиите от 2005 г. ще ви подканят да приемете лицензионно споразумение преди преинсталиране на пакета. Всички останали имат GUI, който ще ви попита дали искате да поправите или деинсталирате съществуващата инсталация. В повечето случаи операция по поправяне ще отстрани всички проблеми.

Ако искате да опитате най-екстремния метод, можете да деинсталирате времената на изпълнение, да рестартирате машината и след това да ги инсталирате отново. Не препоръчвам този метод с времетраенето през 2005 и 2008 г. Без тях Windows ще генерира много грешки и много функционалност няма да има за вас, когато рестартирате.

заключение

С малко наблюдение, докосване на опит и грешки и малко разбиране за това как се генерират грешки време на изпълнение на системата, софтуерните проблеми могат да бъдат намерени и разрешени, без да се прибягва до сложни инструменти за отстраняване на грешки и трупи.

Имате ли грешки по време на изпълнение на вашата система? Какво се изискваше за разрешаването им? Уведомете ме в коментарите по-долу.

Брус играе с електроника от 70-те години, компютрите от началото на 80-те и точно отговаря на въпроси за технологиите, които не е използвал и не е виждал през цялото време. Той също се дразни, като се опитва да свири на китара.