Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Запуск программы невозможен, так как на компьютере отсутствует COMCTL32.dll (http://forum.oszone.net/showthread.php?t=294050)

James Douglas 17-01-2015 12:43 2457405

Запуск программы невозможен, так как на компьютере отсутствует COMCTL32.dll
 
Товарищ притащил ноутбук. Стоит 32 битная Windows 7(сборка OVGorsky) . Все работало нормально, пока он не установил по моей рекомендации антивирус 360 Total Security(cам им пользуюсь, клиентам ставил - никаких проблем не было).
С его слов :После первой же проверки было обнаружено 6 угроз, он нажал исправить. После чего при запуске винды выходит сообщение "Запуск программы невозможен, так как на компьютере отсутствует COMCTL32.dll" , ОС не запускается при этом. Я так понял, 360 Total Security грохнул этот файл. Как быть? Сразу переустановить ОС или, можно обойтись малой кровью?

Amigos 17-01-2015 16:41 2457485

Цитата:

Цитата James Douglas
можно обойтись малой кровью? »

загрузится с liveCD ,
открыть wim архив с установочного диска 7 32 бит
Извлечь из этого архива все COMCTL32.dll

Их больше одного, например в x64 7 их
Скрытый текст
Windows\System32\comctl32.dll
Windows\SysWOW64\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.18201_none_97c9d703ee91c7f1\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_a4d3b9377117c3df\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.22376_none_980cc5cd07e3aa05\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.22376_none_a6ba9bf96e3dcd13\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.22376_none_3bee2a494f8638cf\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.22376_none_ee67d2d082b9f619\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.18201_none_3bab3b80363456bb\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.17514_none_97c2246fee970dbb\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7601.17514_none_3ba388ec36399c85\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.20787_none_961cb3b90ac4540e\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.20787_none_a6357652551c0c2c\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.20787_none_e3967e4730ab1731\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.20787_none_39fe18355266e2d8\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.20787_none_ede2ad2969983532\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.20787_none_2b43b51e45274037\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.16661_none_95a2b509f19be458\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_a44e1fc257f685f6\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_fa62ad231704eab7\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.16661_none_39841986393e7322\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_ebfb56996c72aefc\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_420fe3fa2b8113bd\comctl32.dll
Windows\winsxs\amd64_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.16385_none_959110a7f1a88a21\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16385_none_a44af8ec57f961cf\comctl32.dll
Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_fa645303170382f6\comctl32.dll
Windows\winsxs\x86_microsoft-windows-shell-comctl32-v5_31bf3856ad364e35_6.1.7600.16385_none_39727524394b18eb\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5\comctl32.dll
Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\comctl32.dll

в 32 битной должно быть меньше
Положить распакованные comctl32.dll в соответсвующие папки на C:\ , где нет своего comctl32.dll

El Scorpio 18-01-2015 01:02 2457662

Собственно, суть проблемы описана в первых же словах :)
Цитата:

Цитата James Douglas
Стоит 32 битная Windows 7(сборка OVGorsky) . »


Цитата:

Цитата James Douglas
Я так понял, 360 Total Security грохнул этот файл. »

Да, потому что это был компонент вируса. Множество вирусов сохраняет свои файлы под именами, совпадающими с названиями файлов системных компонентов Windows. Просто размещает свои файлы в других каталогах.
Ну а многие антивирусы при удалении вируса забывают исправлять ссылки в системном реестре, из-за чего возникают подобные ситуации - Windows пытается запустить удалённый файл вируса вместо файла штатного компонента системы.

Цитата:

Цитата James Douglas
обойтись малой кровью? »

Запустить LiveDVD, открыть редактор реестра, найти ссылки на этот файл и заменить их правильными путями к исходному системному файлу.
Но лучше всё-таки переустановить систему с оригинального диска - мало ли каких сюрпризов таит в себе сборка...

foontick 03-02-2016 03:22 2601979

Цитата:

Все работало нормально, пока он не установил по моей рекомендации антивирус 360 Total Security(cам им пользуюсь, клиентам ставил - никаких проблем не было). С его слов :После первой же проверки было обнаружено 6 угроз, он нажал исправить. После чего при запуске винды выходит сообщение "Запуск программы невозможен, так как на компьютере отсутствует COMCTL32.dll" , ОС не запускается при этом. Я так понял, 360 Total Security грохнул этот файл.
Вот проблема один в один!!!!!!
На автомате нажал "устранить угрозы" и получил живой ноут с невозможностью запускать программы. Что за хрень 360ts?
Замена dll не помогла. Система стоит хз какой сборки. Заменить на "точно такойже" не представляется возможным. Заменил с другой сборки - не помогло. Не регистрируется и все.
Помогло восстановление системы (удалял ненужные проги и была создана точка восстановления).
После чего запустил докторвеб (свежий) и он ничего не нашел.
Так что поосторожнеее с 360TS

Amigos 03-02-2016 08:30 2602005

Цитата:

Цитата foontick
Что за хрень 360ts? »

Антивирус.
Как и прочие антивирусы, он может своей "борьбой" привести систему в полностью неработоспособное состояние.

Lera149903 30-06-2016 18:18 2646842

Вложений: 1
Помогите,пожалуйста,как исправить проблему?? Такая же проблема,установила этот антивирус,а теперь пишет эту ошибку,но при этом экран чёрный

joystick8000 12-03-2017 00:14 2718638

Аналогичная проблема после этого антивируса.
Хочу попробовать перерегистрировать библиотеку но нет возможности вызвать regsrv32.
Может кто подскажет как в реестре можно выполнить регистрацию comctl32.dll при помощи liveCD?

Казбек 12-03-2017 11:49 2718712

Цитата:

Цитата joystick8000
Может кто подскажет как в реестре можно выполнить регистрацию comctl32.dll при помощи liveCD? »

Такой вариант у людей срабатывал.
Цитата:

How to run chkdsk or System File Checker (SFC) from the Recovery Console
Boot your Vista or Windows 7 installation DVD
When you see "Press any key to boot from CD or DVD", press Enter
At the "Install Windows" screen, click on Repair your computer at lower left
At the System Recovery Options screen, make note of the drive letter assigned to your boot drive (normally C and click Next
At the Chose a Recovery Tool window, click on Command Prompt. You will be sitting at X:\Sources directory
Run chkdsk or SFC
If you did not note the drive letter of your boot disk, you can enter bcdedit and look at the osdevice line to see what it is.
For chkdsk, type chkdsk c: /r and press Enter (use the letter from above if not C.
For sfc, type sfc /scannow /offbootdir=c:\ /offwindir=c:\windows and press Enter (use the letter from above)
Let either run to completion undisturbed.

ruslan... 13-03-2017 00:13 2718884

Цитата:

Цитата Казбек
For sfc, type sfc /scannow /offbootdir=c:\ /offwindir=c:\windows and press Enter »

Или проще говоря Особенности работы средства проверки системных файлов (SFC.exe) в среде Windows RE

Sirius_kh@twitter 15-04-2020 21:59 2917315

Цитата:

Цитата ruslan...
Цитата Казбек:
For sfc, type sfc /scannow /offbootdir=c:\ /offwindir=c:\windows and press Enter »
Или проще говоря Особенности работы средства проверки системных файлов (SFC.exe) в среде Windows RE »

sfc пишет, что нашёл повреждённые файлы, но не смог восстановить, мало того он написал что читайте log и исправляйте вручную, но log судя по записям он тоже изменить не смог

Sirius_kh@twitter 15-04-2020 22:37 2917320

А теперь РЕШЕНИЕ проблемы. Решил написать, поскольку эта проблема до сих пор актуальна. 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м годом.

Iska 16-04-2020 05:51 2917345

Отповедь
Цитата:

Цитата Sirius_kh@twitter
Проблема заключается в том, что файлов COMCTL32.dll не 1, а целых 13. »

Это не проблема, и их не тринадцать (см. ниже).

Цитата:

Цитата Sirius_kh@twitter
Находятся они в 12 папках в папке Winsxsи 1 в system32. »

В каталоге winsxs находятся версии файла, как оригинальный, так и полученные вместе с обновлениями. В каталоге System32 находится жёсткая ссылка, которая указывает на актуальный установленный файл, находящийся в winsxs.

Цитата:

Цитата Sirius_kh@twitter
Таким образом находим лишний файл и ищем соответсвующую папку в нерабочей винде. »

Вот токмо её может и не найтись.

Цитата:

Цитата Sirius_kh@twitter
У этих папок длинные названия состоящие из белиберды, »

Это не «белиберда».

Цитата:

Цитата Sirius_kh@twitter
Я не пробовал копировать туда файл с другим размером или с другой папки, поэтому ничего по этому поводу не скажу. »

И не пробуйте.

Цитата:

Цитата Sirius_kh@twitter
2. В моём случае, большинство папок в нерабочей винде были заблокированы. »

Во всех случаях они не «заблокированы». Просто у Вас нет разрешений для манипуляций с данными файлами (таковые разрешения заданы для учётной записи TrustedInstaller).

В общем, поменьше мифов и сказок.


Время: 14:10.

Время: 14:10.
© OSzone.net 2001-