14 лет назад 11 ноября 2009 в 20:48 2329
С недавнего времени при включении компа стало появляться такое сообщение: «Системная библиотека user32.dll перемещена в памяти. Работа приложения будет нарушена. Перемещение произошло из-за того, что библиотека C:WindowsSystem32shell32.dll заняла область адресов, зарезервированную для системных DLL Windows. Обратитесь к поставщику за новой версией библиотеки». Вирусов на компе как будто нет. Помогите избавиться от этой ошибки.

Я полагаю, речь идет о Windows XP (кровожадный смайл)? Причин случившегося может быть несколько, и универсального решения нет. Если вы ставили софт, изменяющий внешний вид системы (типа Vista Transformation Pack), то дело именно в нем. Подобные программы переписывают библиотеку shell32.dll, заменяя ее своей, намного большей по размеру, из-за чего та порой не помещается в отведенную ей область памяти. В таком случае нужно восстановить shell32.dll – правда, тогда вы лишитесь украшательств (между прочим, многие «транформпаки» очень кривые, так что лучше от них вообще отказаться).

Прежде всего деинсталлируйте установленный пакет оформления Windows, не поможет – грузите последнюю удачную конфигурацию ОС. Если это не исправило ситуацию, можно переустановить имеющиеся в системе заплатки от Microsoft (дело в том, что в некоторых хотфиксах содержатся новые версии этих библиотек). И наконец, самый последний вариант – замена файлов вручную (необходимое замечание: все, что вы делаете, вы делаете на свой страх и риск!). Для начала создайте резервную копию существующей библиотеки. Теперь надо скачать дистрибутив установленного сервис-пака, запустить инсталлятор, и после того, как он извлечет все файлы, найти на локальных дисках папку с именем вида e2de34b1e9f6c465bbaca9, а в ней директорию i386.

Скопируйте оттуда в какой-нибудь каталог файл shell32.dl_ и распакуйте его командой expand shell32.dl_ shell32.dll. Полученную таким образом библиотеку нужно поместить в ту папку, где она должна находиться, а именно %Windir%system32. Потом произведите аналогичные операции с файлом user32.dll, а затем перегружайте систему. Еще одна возможная причина описана в статье support.microsoft.com/kb/935448 на сайте Microsoft. Поскольку там все достаточно подробно изложено на русском языке, думаю, нет смысла пересказывать ее своими словами. Надеюсь, один из предложенных способов поможет решить проблему. И конечно, было бы интересно узнать об опыте наших читателей в борьбе с подобными глюками.

 

Никто не прокомментировал материал. Есть мысли?