В этом посте я расскажу о том, как исправить ошибку Класс не зарегистрирован при запуске Google Chrome. Возникает она в случаях когда Google Chrome должен запуститься с определенным URL в качестве параметра, т.е. например вы открываете двойным кликом html файл на диске, браузером по-умолчанию при этом у вас установлен Chrome - и получаете ошибку "Класс не зарегистрирован". Такое же поведение может наблюдаться когда, например, вы пытаетесь кликнуть по ссылке в письме, открытом в почтовой программе и т.п. С чем это связано?
Если на ПК устанавливались несколько версий Google Chrome - например, обычная и Canary (dev-версия браузера), и что-то из этого некорректно было удалено, или же, если вы устанавливали user-level версию Google Chrome (которая ставится в папку профиля пользователя, а не в Program Files), а потом вдруг решили установить Google Chrome системного уровня, т.е. запустили установщик от имени администратора - то почти наверняка вы получите эту ошибку. Долгое и вдумчивое чтение интернета по этому поводу может навести на массу решений, но все они "половинчатые". Долго время с пользовался скриптом chromefix.cmd для решения этой проблемы:
Здесь все банально и просто, удаляется ветка DelegateExecute в ChromeHTML и проблема "уходит" до следующей перезагрузки ПК. Но давайте попробуем разобраться чем она вызвана? В параметре DelegateExecute указан CLSID {5C65F4B0-3651-4514-B207-D10CB699B14B} который должен указывать на путь к delegate_execute.exe рабочей версии Google Chrome. У меня Windows 8.1 x64 и Google Chrome системного уровня. Т.е. у меня все что относится к Chrome'у находилось в папке "C:\Program Files (x86)\Google\Chrome\Application\42.0.2311.90" (!) ... Теперь запускаем поиск по имени CLSID в реестре, т.е. просто ищем 5C65F4B0-3651-4514-B207-D10CB699B14B и смотрим внутрь параметра LocalServer32:
Бинго ... Проблема "Класс не зарегистрирован!" в Google Chrome решена.
Если на ПК устанавливались несколько версий Google Chrome - например, обычная и Canary (dev-версия браузера), и что-то из этого некорректно было удалено, или же, если вы устанавливали user-level версию Google Chrome (которая ставится в папку профиля пользователя, а не в Program Files), а потом вдруг решили установить Google Chrome системного уровня, т.е. запустили установщик от имени администратора - то почти наверняка вы получите эту ошибку. Долгое и вдумчивое чтение интернета по этому поводу может навести на массу решений, но все они "половинчатые". Долго время с пользовался скриптом chromefix.cmd для решения этой проблемы:
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeHTML\shell\open\command /v DelegateExecute /f reg delete HKEY_CURRENT_USER\SOFTWARE\Classes\ChromeHTML\shell\open\command /v DelegateExecute /f
Здесь все банально и просто, удаляется ветка DelegateExecute в ChromeHTML и проблема "уходит" до следующей перезагрузки ПК. Но давайте попробуем разобраться чем она вызвана? В параметре DelegateExecute указан CLSID {5C65F4B0-3651-4514-B207-D10CB699B14B} который должен указывать на путь к delegate_execute.exe рабочей версии Google Chrome. У меня Windows 8.1 x64 и Google Chrome системного уровня. Т.е. у меня все что относится к Chrome'у находилось в папке "C:\Program Files (x86)\Google\Chrome\Application\42.0.2311.90" (!) ... Теперь запускаем поиск по имени CLSID в реестре, т.е. просто ищем 5C65F4B0-3651-4514-B207-D10CB699B14B и смотрим внутрь параметра LocalServer32:
Как видно на приведенном скриншоте - в моем случае путь указан правильный. но CLSID {5C65F4B0-3651-4514-B207-D10CB699B14B} находится не только в HKEY_CLASSES_ROOT\Wow6432Node\CLSID\, но и в HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\, и в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\ ... И вот как раз там я обнаружил старый путь к delegate_execute.exe, который указывал на копию Chrome user-level, т.е. на когда-то находившийся в папке с профилем. Достаточно было заменить все пути в {5C65F4B0-3651-4514-B207-D10CB699B14B}\LocalServer32 на корректный и все стало работать.
Т.е. общий алгоритм действий такой:
- Выясняем какой именно Google Chrome у нас стоит, пользовательского уровня или системного. Если системного он должен быть у нас в Program Files, если пользовательского, то в папке с профилем.
- Заходим в папку, в ней будут подпапки с версиями, выбираем текущую (последнюю) и копируем этот путь, например, в блокнот, дописывая к нему delegate_execute.exe в конце. Т.е. у меня полностью получилось так - "C:\Program Files (x86)\Google\Chrome\Application\42.0.2311.90\delegate_execute.exe"
- Далее запускаем редактор реестра и ищем в нем раздел 5C65F4B0-3651-4514-B207-D10CB699B14B, их может быть несколько, в HKEY_CLASSES_ROOT, в HKEY_CURRENT_USER и т.п. Заходим в каждый из найденных разделов и смотрим внутрь LocalServer32, так, как показано на картинке выше.
- Как видно, путь к delegate_execute.exe там указан в параметре (По-умолчанию) и в ServerExecutable.
- Если путь отличается от пути который мы запомнили на первом шаге, то исправляем на верный в двух местах и ищем следующий раздел 5C65F4B0-3651-4514-B207-D10CB699B14B, в котором проводим аналогичную операцию.
- Повторяем все это до тех пор, пока поиск в реестре не завершится.
Бинго ... Проблема "Класс не зарегистрирован!" в Google Chrome решена.
p.s. Ну и плюсом можете почитать различные Issue в обсуждениях, например вот это - Issue 171355: "Class not registered" error when launching Chrome from AppId related entry point (shortcut or anything to do with default browser)", где обсуждается аналогичная проблема.
Спасибо, Ваш способ мне помог! :)
ОтветитьУдалитьОтличное решение, спасибо:)
ОтветитьУдалитьвсе ok. Спасибо!
ОтветитьУдалитьСкажите , а что за цифры \42.0.2311.90 , у меня в C:\Program Files (x86)\Google\Chrome\Application цифр нет, а в реестре другие 44.0. 2403.157 Какие ставить?
ОтветитьУдалитьНайдите папку куда у вас фактически установлен Google Chrome и укажите полный путь к delegate_execute.exe в реестре, как описано в статье.
УдалитьУ меня нет вот такого {5C65F4B0-3651-4514-B207-D10CB699B14B}
ОтветитьУдалитьИ даже ничего похожего на это
Думать естественно ;) Т.е. посмотреть в каком CLSID у вас прописан вызов delegate_execute.exe для Chrome.
УдалитьАвтор безусловно виртуоз. Но запустить инсталлятор ChromeSetup.exe, который сам все восстановит и починит секунд за 20, проще и быстрее. Для средне-статистического пользователя.
ОтветитьУдалитьВ том-то и дело что в некоторых случаях ничего он не починит и проблема останется даже после полной переустановки Chrome.
УдалитьСтолкнулся с этой проблемой на 8.1, установил GH поверх стоявшей версии. При запуске ярлыком получил ошибку "Класс не зарегистрирован". Удаление и повторный запуск инсталлятора не помог. Выполнение действий, указанных в этой статье помогло решить проблему. Спасибо автору!
ОтветитьУдалитьбыла такая же проблема, после отката с 10 на 8.1 не запускался Chrome с ярлыка. Поменял в регистре путь и все ОК. Автору респект!
ОтветитьУдалитьСпасибо большое, помогло!
ОтветитьУдалитьНе нашел CLSID в котором прописан вызов delegate_execute.exe
ОтветитьУдалитьПомог просто запуск delegate_execute.exe в режиме Run as administrator.
Автору спасибо за статью
У меня была антологичная ситуёвина. Помог именно этот способ. Зачем ковыряться в реестре, если так проще?
УдалитьБлагодарю за инструкцию.
ОтветитьУдалитьСегодня совершенно неожиданно вылезла данная проблема и вышеописанные манипуляции с реестром, вроде бы, помогли.
Остается надеяться что все не сломается снова при обновлении.
В Вынь 10 это довольно не так, но очень похоже... см. https://www.youtube.com/watch?v=Eghso7L--Ac
ОтветитьУдалитьУстанавливал portable, вообще разделов с длинным номером не нашел, хотя в ссылке на DelegateExecute они указаны.
ОтветитьУдалитьКакое решение помогло?
УдалитьТоже поставил Chrome portable на Win 8.1. Разделов нет с длинным номером. Класс не зарегистрирован, когда запускаю Windows Live Mail и пытаюсь открыть любую ссылку в письме.
ОтветитьУдалитьПроблему с запуском Chrome через ярлык на начальном экране (меню пуск) решил немного по-другому - написал на VB6 программульку, которая делает тупо его вызов, т.к. экзешник запускается без проблем с установленной совместимостью администратора, проблемы с классом - только для ярлыков и панели начального экрана.
VB6: Добавить стандартную форму, сделать для нее Vsible = False, добавить иконку как у Chrome.
Код:
Private Sub Form_Load()
On Error Resume Next
Shell "chrome.exe"
End
End Sub
Кому надо могу скинуть скомпилированное в exe - записать на жесткий, добавить на начальный экран.
Разобрался. Windows 8.1, класс не зарегистрирован при попытке в приложениях открыть интернет ссылки в Chrome. Для решения этой проблемы следуем инструкции, описанной автором поста, НО! в (по умолчанию) не указываем ссылку на delegate_execute.exe, а ставим: "C:\Program Files\Google\Chrome\Application\chrome.exe" -- "%1"
ОтветитьУдалитьПосле описанных операций все заработало нормально, но когда нажимал на ярлык в меню пуск, то программа пыталась скачивать саму себя. Нашел как исправить: идем HKEY_CLASSES_ROOT\Chrome\.exe\shell\open\command\ и в параметре (По умолчанию) ставим: "C:\Program Files\Google\Chrome\Application\chrome.exe"
ОтветитьУдалитьТакже у меня для chrome.exe и для delegate_execute.exe стоит запуск под администратором. (PS программка VB6 описанная выше - не нужна!)
У меня возникла ошибка в Google Chrome, меня не пускают на сайт когда я нажимаю на кнопку выходит объявление такого типа,Паралельная конфигурация не правильна,дополнительные сведения содержатся в журнале событий и приложений или использовать программу командной строки "sxstrace.exe, а в самом верху написано"C:\Program Files\Google\Chome\Application\Chrome.exe. И я уже что только не делала всю неделю ищу ошибку и не получается, я конечно самоучка не важно знаю свой ноутбук, но и Windows подключался и ничего не смогли сделать. Я могу зайти в Гугл и на почту и в свой аккаунт, но на свою страницу в настройки меня не пропускают.Помогите пожалуйста.
ОтветитьУдалитьПопробуйте переустановить компоненты Microsoft Visual C++ Redistributable и .NET Framework на ПК (т.е. вначале удаляем их с помощью меню Панель управления -> Программы и компоненты, затем скачиваем с сайта Microsoft и устанавливаем по новой). Если это не поможет решить проблему, можно воспользоваться точкой восстановления системы и сделать откат на момент, когда Google Chrome еще работал. В случае же если самостоятельно у вас ничего сделать не получится, в любом нормальном сервисе по ремонту ПК специалисты смогут решить описанную вами проблему максимум за час.
Удалить