- REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.
- Примеры использования regsvr32.exe :
- список зарегистрированных в системе дллов?
- 7 ответов
- Как узнать, зарегистрирована ли DLL?
- Как зарегистрировать DLL библиотеки (x32-64 bit) в Windows 10/7
- Отмена и повторная регистрация DLL библиотеки
- Регистрация DLL библиотеки
- Отменить регистрацию файла DLL
- Перерегистрировать все файлы dll
- Регистрация 32-битной DLL в 64-битной ОС
- Что нужно учесть?
- Использование средства Regsvr32 и устранение неполадок, связанных с выводимыми им сообщениями об ошибках
- Аннотация
- Синтаксис команды Regsvr32
- Типичные решения ошибок Regsvr32
REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.
Модель многокомпонентных объектов ( C omponent O bject M odel — СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:
HKLM\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек для всех пользователей системы;
HKCU\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек только лишь для текущего пользователя;
HKLM\SOFTWARE\Wow6432Node\Classes\CLSID — для регистрации 32-битных DLL в 64-битных ОС Windows;
При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:
При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe , имеющейся во всех версиях операционных систем семейства Windows .
Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :
— 64-разрядная версия в каталоге %systemroot%\System32 (обычно — C:\Windows\System32)
— 32-разрядная версия в каталоге %systemroot%\SysWoW64 (обычно – C:\Windows\SysWoW64)
Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).
При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:
Формат командной строки REGSVR32:
Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u — — вызывает DllUnInstall, отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;
/n — не вызывает DllRegisterServer; может использоваться с ключом /I;
/s – «тихий» режим; окна сообщений не отображаются;
Примеры использования regsvr32.exe :
regsvr32 /u «C:\Program Files\7-Zip\7-zip32.dll» — отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:
Для подавления вывода сообщения, используется параметр /s :
regsvr32 /u /s «C:\Program Files\7-Zip\7-zip.dll»
В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:
regsvr32 «C:\Program Files\7-Zip\7-zip.dll»
Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :
Или без использования переменных окружения:
В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:
— Получить в удобном виде список всех зарегистрированных в системе объектов.
— Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.
— Выполнить регистрацию или отмену регистрации выбранных объектов.
— Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.
— Зарегистрировать или перерегистрировать указанный файл.
Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.
список зарегистрированных в системе дллов?
7 ответов
Смотря какой–HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs или тот,что в VB в диалоге References
не знаю где они хранятся
пишеш
regsvr32 dll_name.dll
и дллка регистрируется в ОС.
Так вот, как получить весь список?
а надо для следующего:
есть файл со списком дллов.
1. regsvr32 /u ***.dll
2. проверить все ли ушли.
3. regsvr32 ***.dll
так вот. второй пункт 🙁
ответ команды regsvr32 не подходит
(доверяй, но проверяй)
Почему-то так и думал,что именно COM:)
Не буду врать,но где-то у меня вроде был пример,который эти DLL перечислял
Хотите все COM-интерфейсы в системе посбивать,чтоб ни одна программа не работала?;)
да, не все, а определенные надо удалить,
затем заменить их на новые и вновь зарегистрировать.
@pixo $oft Был бы признателен за кодик
Так не проще те,которые надо заменить,разрегистрировать,подменить(так,я понимаю?) и зарегистрировать вновь?
Как узнать, зарегистрирована ли DLL?
Когда вы регистрируете DLL на старых машинах (Windows XP), regsrv всегда говорит, что регистрация прошла успешно. Это происходит, даже если пользователь не имеет разрешения на регистрацию.
С именем dll, есть ли команда, которую я могу запустить в командной строке, чтобы проверить, установлена ли DLL?
Учитывая, что регистрация DLL может включать в себя произвольные операции, не существует универсального способа определить, была ли регистрация для произвольной DLL.
Чтобы определить, была ли DLL-библиотека зарегистрирована, вам необходимо предоставить знания, относящиеся к конкретной области. Если вы знаете, что DLL регистрирует COM-объект с определенным CLSID, вы можете проверить, действительно ли этот CLSID зарегистрирован.
ОК, это невозможно, но DLL обычно регистрируют себя, создавая запись в реестре. Обходной путь должен:
- Сначала вы должны обнаружить COM GUID библиотеки DLL. Если у вас есть один компьютер, на котором он уже зарегистрирован, вы можете:
- Откройте regedit и найдите свое имя файла DLL
- Если оно зарегистрировано, вы найдете имя файла под ключом, который находится под TypeLib. Ключ будет выглядеть так:
- Теперь, когда вы знаете GUID DLL, вы можете найти его с помощью этой команды в командной строке DOS: reg query HKCR\CLSID | find /i «<9f3dbfee-fd77-4774-868b-65f75e7db7c3>«
Лучший ответ позволил бы мне найти GUID непосредственно из файла до его регистрации. По крайней мере, таким образом вы можете создать скрипт для установки и проверить, был ли он успешно установлен.
Как зарегистрировать DLL библиотеки (x32-64 bit) в Windows 10/7
Когда пользователь запускает игры или программы, то может столкнуться с ошибкой, что не удалось запустить программу, так как на компьютере отсутствует DLL файл. В большинстве случаях, регистрация указанного DLL файла может устранить данную ошибку. Также, иногда бывают моменты, когда библиотеку нужно перезарегистрировать заново, т.е. отменить текущую регистрацию и заново зарегистрировать.
Воспользуемся инструментом Regsvr32 командной строки, который регистрирует и отменяет регистрацию DLL библиотек и ActiveX (OCX) в Windows 10/8.1/7.
Отмена и повторная регистрация DLL библиотеки
Путь к DLL библиотеке можно скопировать, чтобы не писать его вручную в командой строке. Для этого, зажмите левый Shift и нажмите правой кнопкой мыши по DLL фалу, после чего «Копировать как путь«.
Наберите в поиске «Командная строка» и нажмите по ней правой кнопкой мыши, после чего выберите «Запустить от имени администратора» и вводите ниже команды, которые вам необходимы.
Регистрация DLL библиотеки
В командную строку введите следующую команду, чтобы зарегистрировать DLL библиотеку в системе Windows.
Отменить регистрацию файла DLL
Чтобы отменить текущую регистрацию DLL файла, введите ниже команду и нажмите Enter:
Перерегистрировать все файлы dll
Чтобы зарегистрировать все файлы dll в системе Windows, то:
Регистрация 32-битной DLL в 64-битной ОС
Если вы получаете сообщение об ошибке при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии Windows, выполните следующие действия:
- Если 32-разрядная DLL находится в папке System32, то переместите ее в папку SysWoW64 и введите ниже команду.
или
Что нужно учесть?
1. В 64-разрядной версии операционной системы Windows существует две версии файла Regsv32.exe:
- 64-разрядная версия — это %systemroot%\System32\regsvr32.exe
- 32-разрядная версия — это % systemroot%\ SysWoW64\regsvr32.exe.
2. В 64-разрядной версии Windows, 32-разрядные файлы DLL всегда находятся в папке Windows\SysWOW64. В то время как 64-битные библиотеки DLL находятся в папке Windows\System32. В 32-битной версии Windows, файлы DLL находятся только в папке Windows\System32. Здесь не будет папки SysWOW64.
3. Если вы получаете ошибки, такие как DllRegisterServer, модуль несовместим с версией Windows или точка входа не найдена, то знайте:
- Не все библиотеки DLL предназначены для регистрации в системе Windows.
- Если вы скачали библиотеку со стороннего сайта, то она может быть даже и не библиотекой, а скорее всего каким-либо вирусом.
- Вы регистрируете уже зарегистрированный DLL файл.
Как исправить?
- Много DLL библиотек, таких как d3dx9_43.dll, MSVCR71.dll, VCRUNTIME140.dll, находятся в сторонних компонентах как DirectX, NET Framework и Visual C++, которые нужно скачать на сайте Microsoft и установить. Вы можете в интернете почитать о самом файле, к чему он относится. Также, можете воспользоваться поиском на этом сайте, так как я много описывал решений о проблемах с DLL файлами.
- Отмените регистрацию и зарегистрируйте DLL файл повторно.
4. Отключите на время контроль учетных записей ( UAC ) во время регистрации DLL, так как он может мешать процессу.
Использование средства Regsvr32 и устранение неполадок, связанных с выводимыми им сообщениями об ошибках
Если вы получили сообщение об ошибке, описания которого нет в этой статье, можно найти его подробное объяснение, рекомендуемые действия и список дополнительных ресурсов поддержки на странице ошибок и событий TechNet.
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%\System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
64-разрядная версия — %systemroot%\System32\regsvr32.exe;
32-разрядная версия — %systemroot%\SysWoW64\regsvr32.exe.
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i
/s – «тихий» режим; окна сообщений не отображаются
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows 7 и Windows VistaНажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно «Командная строка».
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
Откройте командную строку с повышенными привилегиями.
Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.