Context
Я переношу установщик элемента управления ActiveX с компьютера на пользователя. Я сделал это, запрограммировав запись установщика в HKCU\Software\Classes
вместо HKLM\Software\Classes
.
Задача
На моем компьютере (Windows 7 с включенным UAC) элемент управления ActiveX успешно загружается. На других тестовых компьютерах с Windows 7 (одна с включенным UAC, другая с отключенным UAC) элемент управления загружается «частично».
Что такое частично?
Когда пользователь посещает страницу с элементом управления ActiveX, Internet Explorer отображает предупреждение в желтой полосе в верхней части окна. Если вы нажмете кнопку «Выполнить надстройку» на панели, элемент управления станет видимым и начнет работать, но код Javascript, который пытается получить доступ к свойствам элемента управления, возвращает ошибку:
Library not registered
.
Различия между машинами
На машине dev чтение с HKCR\CLSID\<GUID>
выполнить успешно, в то время как на тестовых машинах эти операции чтения не пройдены. Чтения из HKCU успешны как на dev, так и на тестовых машинах. Сбой чтения из HKLM как на тестовой, так и на dev-машине. (Я собрал чтение с помощью Sysinternals Process Monitor) Странно, но ключи, которые Internet Explorer не может прочитать, хорошо видны, если я использую regedit для просмотра HKCR\CLSID\<GUID>
на тестовых компьютерах.
Вопрос
Что я могу сделать, чтобы пользовательский элемент управления загружался на тестовые машины? Что может вызвать эту разницу между машиной для разработки и тестовыми машинами? Почему я вижу ключ в HKCR с помощью RegEdit, но Internet Explorer не видит ключ?
Любая помощь приветствуется. Спасибо.