regsvr32: ошибка 0x80020009 при вызове DllRegisterServer

Ответить
Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

regsvr32: ошибка 0x80020009 при вызове DllRegisterServer

Сообщение blackstrip » Вс апр 02, 2017 1:05 pm

Лет 15 назад писал на VB6 и активно использовал ActiveX компоненты, которые обычно хранятся в OCX файлах. Перебирал старые исходники, проги, и увидел при запуске одной из прог, что OCX компонент не найден в системе.

Чтоб на новом компе прога увидела ActiveX компонент - надо его зарегистрировать в системе. Для этого вызывается утилита regsvr32.exe, а в параметрах вызова указывается путь и имя OCX файла.

И если под Windows 10 вызывать regsvr32 без прав администратора, то выдает ошибку 0x80020009.

Чтоб автоматизировать процедуру регистрации для любых OCX и DLL файлов и регистрировать их по одному клику необходимо сделать следующее:

1) Жмем Windows+R (или Пуск-Выполнить), вводим

Код: Выделить всё

shell:sendto
и жмем Enter

2) Открывается папка, в которой валяются все ярлыки прог, которые видны в меню по правому клику на любом файле (точнее, в его подменю Отправить, что по-английски будет как раз "send to").

3) Создаем в папке текстовый файл, переименовываем его в regsvr.bat

4) Жмем правой кнопкой мыши на regsvr.bat и выбираем Изменить (второй пункт сверху)

5) Файл regsvr.bat будет открыт в блокноте, вводим в блокнот следующее:

Код: Выделить всё

regsvr32 "%1"
6) Сохраняем наш файл regsvr.bat и закрываем блокнот

7) Жмем правой кнопкой мыши по regsvr.bat и выбираем "Создать ярлык".

8) Переименовываем ярлык в "regsvr.bat ADMIN"

9) Жмем правой кнопкой мыши по ярлыку "regsvr.bat ADMIN" и выбираем Свойства

10) На вкладке "Ярлык" жмем внизу справа кнопку "Дополнительно"

11) В открывшемся окне ставим галку "Запуск от имени администратора" и жмем "Ок".

12) Закрываем окно свойств ярлыка кнопкой "Ок".

13) Всё, теперь можно кликать по любому OCX или DLL файлу правой кнопкой и выбирать в меню "Отправить" - "regsvr.bat ADMIN", соглашаться кнопкой "Да" на выполнение от имени администратора и получать сообщение об успешной регистрации.

p.s. для того, чтобы убрать компонент из системы ("разрегистрировать обратно"), нужно вызвать regsvr32 с ключом /u перед именем OCX/DLL файла. Кому нужно, те могут для этого создать себе также второй bat файл в меню "Отправить", вписав в него следующее:

Код: Выделить всё

regsvr32 /u "%1"
Теперь вы можете регистрировать и убирать из зарегистрированных любые DLL/OCX файлы с компонентами.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость