Что за regsvr32?
RegSvr32 — консольная утилита Windows, позволяющая проводить регистрацию (равно как и аннулировать её) у объектов связывания/внедрения. «Под замес», таким образом, попадают некоторые DLL и ActiveX-управляющие элементы — программируемые компоненты-приложения с интерфейсом на базе OLE, позволяющие включать их в другие программы или приложения.
С незапамятных времён они называются ActiveX элементы или «контрольки ActiveX». Регистрация используется для добавления информации в центральную директорию Windows (то бишь реестр). Информация чаще всего включает в себя «дружественное» название этого компонента, что делает его «более привлекательным» для других приложений, которые могут или будут точно его использовать.
Там также есть его полное название и путь к самому файлу, который содержит в себе исполняющий код. Из него Windows и узнаёт о специальных и доступных функциях компонента, а также о том, как эти функции запускать (обращаться за исполнением кода). Нередко регистрация крутится вокруг проблем совместимости с версиями ОС одного производителя, но разных поколений.
Ведь информация в реестре Windows всегда будет содержать в себе данные именно о последней версии компонента. Windows за этим, кстати, следит очень трепетно: у компонента версия может только одна. И традиционно, если какая-то функция Windows обнаруживала свою недееспособность, пользователю всегда была доступна процедура регистрации или отмены регистрации сервера таких элементов.
На самом деле, такая «деятельность» редко присуща конечным пользователям. Это дела разрабов ПО, но здесь Microsoft явно пошла нам навстречу, оставив возможность изменить отношение системы к какой-то программе вручную. С нашей помощью и помощью RegSvr32.
Почему не удается зарегистрировать dll
В некоторых случаях зарегистрировать нужную библиотеку не удается из-за наличия других неисправностей или ошибок. Основные варианты:
- несовместимость документа с установленной операционкой – нужно проверить разрядность активируемого файла (64 или 32);
- отсутствует точка входа – некоторые DLL не настроены на работу с командами типа DllRegisterServer.
Regsvr32 – регистрация или отмена регистрации библиотеки dll в реестре windows.
Модель многокомпонентных объектов (Component Object Model — СОМ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:
HKLMSOFTWAREClassesCLSID – при регистрации COM-объектов библиотек для всех пользователей системы;
HKCUSOFTWAREClassesCLSID – при регистрации COM-объектов библиотек только лишь для текущего пользователя;
HKLMSOFTWAREWow6432NodeClassesCLSID – для регистрации 32-битных DLL в 64-битных ОС Windows;
При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID. GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:
{23170F69-40C1-278A- 1000-000100020000
При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe, имеющейся во всех версиях операционных систем семейства Windows .
Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe:
– 64-разрядная версия в каталоге %systemroot%System32 (обычно – C:WindowsSystem32)
– 32-разрядная версия в каталоге %systemroot%SysWoW64 (обычно – C:WindowsSysWoW64)
Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).
При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:
Формат командной строки REGSVR32:
Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u — – вызывает DllUnInstall, отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;
/n — не вызывает DllRegisterServer; может использоваться с ключом /I;
/s – “тихий” режим; окна сообщений не отображаются;
regsvr32 /u “C:Program Files7-Zip7-zip32.dll” – отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:
Для подавления вывода сообщения, используется параметр /s:
regsvr32 /u /s “C:Program Files7-Zip7-zip.dll”
В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:
regsvr32 “C:Program Files7-Zip7-zip.dll”
Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32:
%SystemRoot%syswow64regsvr32.exe
Или без использования переменных окружения:
C:WindowsSystem32regsvr32.exe
В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe. Программа не требует установки в системе, имеет небольшой размер и позволяет:
– Получить в удобном виде список всех зарегистрированных в системе объектов.
– Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.
– Выполнить регистрацию или отмену регистрации выбранных объектов.
– Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.
– Зарегистрировать или перерегистрировать указанный файл.
Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.
Страница с описанием RegDllView и ссылками для скачивания 32-х и 64-х разрядных версий программы.
Весь список команд CMD Windows
Второй способ регистрации dll
Второй способ практически ничем не отличается, лишь местом действий. Вам нужно попасть в утилиту «Командная строка», сделать это можно также несколькими способами: или в меню «Пуск» в папке стандартные открыть одноименную программу, или вызвав окно «Выполнить», ввести команду «cmd». Решать только вам.
Теперь перед вами открыта командная строка, в ней нужно ввести абсолютно такие же данные, которые вводились в первом способе. То есть изначально указать программу, которая будет работать с dll (regsvr32.exe), а затем путь к файлу.
Как видим, второй способ, как зарегистрировать DLL, практически ничем не отличается от первого, о чем и говорилось в начале статьи. Но вот третий имеет более заметные отличия, поэтому перейдем к нему.
И правда, надо ли?
Сам факт того, что файл имеет расширение .dll не означает обязательную его регистрацию. Более того, вполне вероятно, что этот процесс для него не присущ. Если внутри его нет функции DllRegisterServer, утилита regsvr32 вообще не поймёт что с ним делать. В общем, с такой ситуацией вы сталкиваетесь именно в тот момент, когда видите сообщение типа:
Модуль » * » загружен, но точка точка входа не найдена…
Были времена когда вместо традиционного для такой «ошибки» окна появлялось игривое сообщение типа «Зачем вы пытаетесь зарегистрировать этот DLL ? Это обычный файл DLL Windows, который не требует регистрации». Или его американский вариант «Why are you trying to register this DLL?
It’s an ordinary Windows DLL, there’s nothing to be registered». И серьёзным подспорьем пользователю в этом вопросе могла бы послужить программа DLL Export Viewer от NirSoft, с помощью которой можно было бы проверить наличие серверов DllRegisterServer и DllUnRegisterServer в собственной библиотеке. Возьмём пример DLL-файла из рисунка, заявляющего о невозможности зарегистрировать пресловутый steam_api.dll:
Как видите сами, у файла и возможности-то такой нет. В отличие, например, от этого:
Так что не торопитесь бить тревогу по поводу всплывающего окна с отказом системы в регистрации того или иного файла из консоли, если кто-то в своих советах настаивает на его обязательной регистрации. Вам, видимо, советует человек в том не слишком сведущий, либо не до конца разобравшийся в вашем вопросе.
Использование «открыть с помощью»
Чтобы использовать данный инструмент, необходимо открыть папку System32. Затем выполнить несколько последовательных шагов:
- по файлу audiosrv кликнуть правой клавишей мышки, откроется дополнительное меню действий;
- нажать строку «Открыть с помощью»;
- выбрать пункт «Обзор», затем – программу System32 или SysWow64 (в зависимости от разрядности действующей операционки).
С помощью указанного приложения требуется запустить DLL, после чего операционная система должна произвести определенные процедуры и отобразить уведомление об успешности завершения процесса.
Как зарегистрировать dll
Стоит отметить, что далеко не всегда даже успешная регистрация файла динамической библиотеки ещё не гарантирует успешное решение ошибки, и вот почему:
Как зарегистрировать файл dll в windows 10
Существует несколько вариантов решения проблемы, связанной с регистрацией документа DLL в операционной системе Windows 10. Начинать можно с любого подходящего способа. Если один не сработал, переходят к следующему.
Обновление за август 2021 года:
Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:
Ваша DLL была успешно зарегистрирована и может использоваться программами Windows. Обратите внимание, что при получении сообщения об ошибке вы можете использовать 64-разрядную версию команды, а не 32-разрядную версию. Если вы установили 64-разрядную версию Windows, а DLL — 32-разрядная, необходимо выполнить команду с 32-разрядной версией regsvr32:
% SystemRoot% SysWoW64 regsvr32
Порядок пере/регистрации элемента
Вы всегда можете попытаться провести ручную регистрацию DLL или OCX файлов из командной строки от имени администратора:
regsvr32 путь-к-файлу/имя-файла
Обратная операция выполняется с добавлением флага u:
regsvr32 /u путь-к-файлу/имя-файла
Суть обеих операций — обращение к серверам DllRegisterServer / DllUnregisterServer внутри этих DLL с целью зарегистрировать файл или удалить сведения о нём из реестра. Т.е. создавая в реестре новые пути или, наоборот, удаляя их из него.
С использованием «regsvr32.exe» в окне «выполнить»
Командное окно «Выполнить» – стандартный инструмент, используемый пользователями Виндовс на 32 или 64 bit для устранения разного рода неполадок. Инструкция:
- вызвать рабочее поле, используя комбинацию горячих клавиш «Win» и «R», либо через раздел «Пуск»;
- в пустую строку ввести команду и путь регистрации необходимого файла: exe C:WindowsSystem32dllname.dll;
- подтвердить запрос кнопкой «ОК» или «Enter».
Внимание! Если нужный документ находится не на диске С, используют запрос %systemroot%System32regsvr32.exe %windir%System32dllname.dll. В данном случае операционка самостоятельно определяет папку расположения блоков ОС.
По завершении процедуры, которая займет некоторое время, на мониторе ПК отобразится уведомление о текущем результате выполнения команды.
Способ 1: запуск «командной строки» от имени администратора
Самая частая причина отказа функционирования Regsvr32 — запуск консоли с правами обычного пользователя. Эта утилита нуждается в повышенном уровне доступа, поскольку редактироваться будут именно системные файлы, поэтому выполнять ее следует только от имени администратора.
Это произойдет автоматически в том случае, если «Командная строка» была запущена от имени данной учетной записи. Проще всего сделать это через меню «Пуск», выбрав соответствующий вариант. Если у вы еще не вошли в необходимую учетную запись, сделайте это так, как рассказано в другой статье на нашем сайте по следующей ссылке, а уже затем проверьте результативность произведенных манипуляций.
Подробнее: Используем учетную запись администратора в Windows
Способ 2: перенос файла в «syswow64»
Обратим внимание, что использовать этот способ стоит только тем юзерам, кто обладает 64-разрядной операционной системой и пытается зарегистрировать или выполнить другие действия с 32-битным файлом. Дело в том, что по умолчанию практически все динамически подключаемые библиотеки помещаются в директорию «System32», но компоненты, имеющие разрядность 32 бита и находящиеся в 64-разрядной Виндовс, должны быть помещены в папку «SysWoW64», чтобы выполнение определенных действий прошло успешно. Из-за этого возникает надобность произведения следующих действий:
- Перейдите по пути
C:WindowsSystem32
, где C — буква системного раздела жесткого диска. - Отыщите там файл, с которым хотите осуществить манипуляции через Regsvr32. Щелкните по нему правой кнопкой мыши.
- В появившемся контекстном меню вас интересует опция «Вырезать» или «Копировать».
- Теперь вернитесь к папке «Windows», где кликните ПКМ по библиотеке «SysWOW64».
- В контекстном меню выберите «Вставить».
- Запустите консоль от имени администратора так, как это было продемонстрировано в первом способе. Используйте команду
%systemroot%SysWoW64regsvr32 name.dll
, где name.dll — полное название динамически подключаемой библиотеки, не забывая при этом применять аргументы.
Еще раз уточним, что этот метод подходит только в ситуации, когда рассматриваемая утилита отказывается функционировать с каким-то конкретным файлом в 64-битной операционной системе. В остальных случаях эти действия не принесут вообще никакого результата.
Способ 3
Третий способ наиболее прост и, возможно, лучшим образом подойдёт для начинающих пользователей, а именно:
Как видно, приведённые выше способы представляют собой, по сути, одно и тоже, только несколькими различными путями.
Способ 3: проверка системы на вирусы
Иногда компьютер может быть заражен вредоносными файлами, которые постепенно распространяются по жесткому диску и влияют на функционирование системных компонентов. На Regsvr32 это тоже может отразиться, поэтому мы настоятельно рекомендуем запустить проверку на вирусы сразу же, как только какие-то проблемы были обнаружены.
Подробнее: Борьба с компьютерными вирусами
Способ 4: проверка целостности системных файлов
Если во время проверки на вирусы они все же были найдены и удалены, вполне возможно, что угрозы оставили след на системных файлах, повредив их. Иногда это приводит к отказу работы некоторых утилит, в том числе и Regsvr32. Запуск проверки целостности системных файлов доступен с помощью стандартного инструмента SFC, однако иногда и он завершает свою работу, выводя на экран ошибку «Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них».
Тогда следует обратиться к средству DISM. Оно предназначено для восстановления хранилища компонентов. Только после успешного выполнения этой операции вы можете вернуться к SFC, чтобы закончить сканирование и отладку целостности. Детальнее обо всем этом читайте в отдельном руководстве.
Подробнее: Использование и восстановление проверки целостности системных файлов в Windows
Способ 5: восстановление windows
Последний вариант, о котором мы хотим поговорить, заключается в восстановлении Windows до заводских настроек или той резервной копии, когда утилита Regsvr32 еще функционировала корректно. Этот способ самый радикальный и использовать его стоит только в той ситуации, когда другие не принесли должного результата.
Подробнее: Варианты восстановления ОС Windows
Теперь вы знаете, что существуют разные причины возникновения неполадок при функционировании Regsvr32 и все они имеют разный алгоритм действий для решения. Однако не стоит забывать, что может попасться поврежденный файл или появятся другие трудности.
Перейти к официальной информации об ошибках Regsvr32
Так в чём проблема?
В вашем случае — не смею догадываться. Однако на моём опыте это был почти всегда либо кривой либо несовместимый с данной версией Windows файл. Нередко с этой проблемой будут сталкиваться пользователи именно Windows 10, для большинства из которых W10 — целостная система, время от времени изменяющая свой вид. Ан нет.
С полугодичными обновлениями мы получаем зачастую именно обновлённую систему. Со всеми вытекающими — старые версии файлов аннулируются, а прежние функции отпадают либо обновляются вплоть до невозможности запускать на их базе некоторые другие, сторонние программы.
Звучит крутовато, но уже простите. Вариант решения проблемы с самим файлом частично предложен в статье Что такое dll, и почему их в Windows не хватает? Однако вопрос с «ошибкой» регистрации вас волновать в описанной форме более, думаю, не должен.
Успехов.
У вас 32-х или 64-х разрядная версия?
Здесь путаница в использовании собственных средств системы будет жить, думаю, вечно. Наиболее частая в нашем случае связана именно с попыткой регистрации 32-х битного приложения в 64-битной Windows. Но здесь всё просто. Если вам нужно зарегистрировать библиотечку 32-х в 64-х битной Windows, команда регистрации через regsvr32 примет вид:
%systemroot%SysWoW64regsvr32 путь-к-файлу/имя-файла
Мы, таким образом, заставляем консоль «заработать утилиту» из папки, которая, несмотря на своё название (SysWoW64), как раз и работает с 32-х битными версиями программ. Но стоит ли подключать к решению проблемы с Windows регистратор RegSvr32?
Через командную строку
Регистрация библиотеки через Command Line осуществляется следующим образом:
- запустить панель «Выполнить» (с помощью горячих клавиш или кнопки «Пуск»);
- в пустое поле вводится запрос «cmd» и затем «ОК»;
- откроется окно черного цвета, где требуется ввести команды из предыдущей инструкции.
Для ввода значений можно использовать функцию копирования и вставки скопированных строк.
Заключение
В заключение следует привести несколько основных моментов, которые могут позволить избежать проблем с регистрацией динамической библиотеки и, в принципе, сделать её не нужной.
- Найдите информацию о том, какой именно функционал выполняется проблемным файлом, и посмотрите с какими системными компонентами он поставляется. Например, файлы, начинающиеся с «d3d», идут в комплекте с «DirectX», который доступен для скачивания на официальном сайте «Microsoft».
- В большинстве случаев, пиратские версии программного обеспечения и игр поставляются с собственными файлами динамической библиотеки, которые необходимы для их работы.
Данное обстоятельство приводит к тому, что файл с расширением «exe» обращается не к копии, которая находится в системном каталоге, а к собственному варианту, что и вызывает ошибку.
Следовательно, для её исправления потребуется просто удалить «несанкционированную копию» из папки с используемым программным продуктом.