ActiveX просит пользователя устанавливать каждый раз, когда страница загружается - PullRequest
2 голосов
/ 01 февраля 2010

У меня есть элемент управления ActiveX, который спрашивает пользователя, хочет ли он устанавливать его каждый раз при загрузке страницы (даже если она уже установлена) ...

Кто-нибудь может указать мне правильное направление? Что я пробовал до сих пор:

  • Установка новых направляющих для класса и интерфейса.
  • Изменение имен интерфейсов и методов.
  • Изменение номера версии
  • Удаление и повторная установка activeX

Ответы [ 3 ]

2 голосов
/ 01 февраля 2010

Сначала посмотрите это MSDN сообщение, которое звучит так, как вы испытываете.

Это может произойти, когда VerCache ключ реестра, возможно, не обновился во время обновления контроля. За пример, [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Ext \ Settings {D7D5ACA4- 4C57-4C75-8D68-BC185E924B4C}] «VerCache» Это происходит, если старый и новые версии управления имеют та же «Созданная» дата и время, «Измененная» отметка даты и времени размер файла.

Если этот раздел реестра не существует, вам, возможно, придется использовать Sysinternals Инструмент «Монитор процессов» для регистрации репродукций проблема, затем поискать в журнале правильное значение реестра, которое проверяется Скорее всего, под \ Ext \ Settings {} ... но независимо от того, убедитесь, что хотя бы один из этих параметров - дата создания отметка времени, «измененная» отметка времени даты или размер файла, на обновленном контроль отличается от старого версия элемента управления.

Кроме того, я бы использовал Process Monitor (Sysinternals), поскольку пользователь устанавливает элемент управления ActiveX, чтобы убедиться, что он делает правильные записи реестра. Ищите в реестре любые GUID, связанные с вашими «старыми» элементами управления и последними. Вы можете сделать резервную копию вашего реестра перед тем, как фактически удалять любые ключи реестра.

Вы также можете попробовать очистку реестра или инструмент поиска.

Если это не поможет, возможно, вы могли бы предоставить более подробную информацию о вашем элементе управления ActiveX.

  1. Вы использовали двоичную совместимость?
  2. Какая версия windows пользователя?
  3. Какая версия IE пользователя?
  4. Это происходит только с этим пользователем? (это работает для других?)

В последнее время пользователь переустанавливал какое-либо программное обеспечение?

Как насчет проверки:

  • Реестр (Ваш ActiveX вносит какие-либо изменения в реестр?)
  • переменная окружения PATH пользователя

У вас был пользователь отменить регистрацию dll? Вы можете запустить это из строки cmd, где файл DLL находится на жестком диске:

В командной строке введите “regsvr32 /u filename.dll”, где «filename» - это имя файла, который вы хотите отменить.

0 голосов
/ 27 октября 2011

В моем случае решение состояло в том, чтобы исправить версию моего элемента управления ActiveX в файле ресурсов my_active_x_control.rc

Я прочитал этот блог

Перейдите на любую машину и запустите IE8. Выберите Инструменты> Управление надстройками, затем выберите раскрывающийся список Показать: загруженные элементы управления. просмотреть список установленные элементы управления Active X ...

Версия моего элемента управления была 1.0.0.1. Как только я обновил версию внутри файла ресурсов, непрерывная установка исчезла.

0 голосов
/ 13 июля 2010

Чтобы решить эту проблему, я написал специальное установочное действие, которое удаляло VerCache до и после каждой установки. Я также написал очень длинное сообщение в блоге об этом, чтобы выразить. Надеюсь, это поможет кому-то попасть в одно и то же время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...