Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


А теперь РЕШЕНИЕ проблемы. Решил написать, поскольку эта проблема до сих пор актуальна. 6 часов провозился перебирая все описанные варианты.

Понадобится:
а) рабочая винда той же битности (в моём случае Windows 7 (x86))
б) придётся подключить диск с неработающей виндой к компу с такой же работающей, или live-винда (я использовал Hiren's boot cd)
в) какой-нибудь портативный Unlocker (в моём случае Unlocker assistant portable)

1. Решение заключается в восстановлении этого файла с помощью рабочей винды. Проблема заключается в том, что файлов COMCTL32.dll не 1, а целых 13. В 64-битной винде их ещё больше. (Спасибо пользователю Amigos за подсказку)
Находятся они в 12 папках в папке Winsxsи 1 в system32. При сопоставлении этих папок оказалось что в нерабочей винде этих файлов не 12, а 11. Лучше всего воспользоваться поисковиком в папке winsxs и сопоставлять. Таким образом находим лишний файл и ищем соответсвующую папку в нерабочей винде. Она оказывается пустой. У этих папок длинные названия состоящие из белиберды, но в обоих виндах названия полностью совпадают. Многие файлы COMCTL32.dll отличались и по размеру и по дате изменения, поэтому я брал файл из соответствующей папки рабочей винды. Я не пробовал копировать туда файл с другим размером или с другой папки, поэтому ничего по этому поводу не скажу.
2. В моём случае, большинство папок в нерабочей винде были заблокированы. Копирование не удавалось, и тут пришлось потанцевать с бубном. Вот здесь понадобится лив-винда и портативный анлокер. Встроенный в Hiren's boot cd анлокер работал только на удаление, а это нам не катит. Другим анлокерам нужно совершить какое-то действие для разблокировки. В нашем случае - переименование. Переименовать ту папку, откуда этот файл был удалён тоже не удастся (скорее всего из за длины названия), поэтому я переименовал winsxs и тогда только удалось вернуть этот файл на место. Теперь переименовываем winsxs назад и перезагружаемся.

Финита

P.S. COMCTL32.dll в папке system32 я тоже заменил, поскольку он оказался изменённый (может быть это и не нужно), а в рабочей винде он датировался 2010м годом.

Отправлено: 22:37, 15-04-2020 | #11