Как IE регистрирует элементы управления ActiveX?

4183
ChristianLinnell

Как IE регистрирует элементы управления ActiveX для использования в браузере?

Это просто запустить regsvr32 для DLL?

1
Будет ли это лучше подходит для StackOverflow? Josh Hunt 14 лет назад 1
Я поместил это здесь, потому что я ничего не программирую - я пытаюсь узнать, как Windows обрабатывает сайты других людей. ChristianLinnell 14 лет назад 0
Я думаю, что это отличный вопрос, а не вопрос чистого программирования. Brian Lyttle 14 лет назад 0

3 ответа на вопрос

1
Brian Lyttle

Насколько я понимаю, он использует некоторые из базовых API, которые использует regsvr32, но он не вызывает regsvr.exe. Элементы управления ActiveX состоят из файла на диске, обычно файла .DLL, и некоторых записей реестра. Записи реестра используются для поиска местоположения фактического исполняемого кода, так как браузер не захочет указывать конкретные файлы. Записи реестра могут быть созданы несколькими способами, включая механизм, который использует regsvr32.

Создание записей реестра под Vista требует привилегий более высокого уровня и должно проходить UAC. Поэтому обычные пользователи не могут устанавливать элементы управления ActiveX. Существует вспомогательный сервис, который может выполнять регистрацию элементов управления от имени пользователя.

1
Richard

Компоненты ActiveX регистрируются сами по себе, запускаемые известной точкой входа DLL ( DllRegisterServer).

regsvr32это просто оболочка для загрузки DLL и вызова этой точки входа. Другие инструменты могут сделать это напрямую. Иногда установщики просто обновляют реестр (записав изменения, которые необходимо внести при сборке установщика).

0
taxilian

Это на самом деле не должно делать ничего из этого; CAB-файл определяет, что он будет делать. Он может использовать DllRegisterServer, и, действительно, это наиболее распространенная вещь, но он также может запустить установщик MSI или EXE, который может зарегистрировать элемент управления ActiveX другим способом.