Доброго времени суток.
Написал я свой bho (делает редирект для заданного сайта)
Собрал его без зависимостей (/MT)
Представляет собой один файл — bho.dll
Добавил в него resource version (1,0,0,1)
функции DllRegisterServer и DllUnregisterServer делают свою работу (запускаю из под админа regsvr32)
Теперь собственно задача — инсталятор.
Подумалось мне что лучший способ для этого наверное .cab
Ведь если на сайте разместить <OBJECT> тэг он будет предлгать
установить его пользователю и (если я правильно понимаю)
будет делать обновление если версия будет увеличиваться (например я что-то поправлю и сделаю 1,0,0,2)
я написал такой bho.inf
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
bho.dll=bho.dll
[bho.dll]
file-win32-x86=thiscab
clsid={C9C42510-9B41-42c1-9DCD-7282A2D07C61}
FileVersion=1,0,0,1
RegisterServer=yes
и такой тестовый bho.html
<OBJECT CLASSID="CLSID:C9C42510-9B41-42c1-9DCD-7282A2D07C61" VIEWASTEXT CODEBASE="bho.cab#version=1,0,0,1"/>
собираю это все до кучи такой командой
cabarc -s 6144 N bho.cab bho.dll bho.inf
Теперь о проблемах.
Запускаю IE (10й под win8 x64), который мне сообщает, что он запретил выполнение сценариев и элементов ActiveX на этой странице
и спрашивает меня: "Разрешить?" — я соглашаюсь и IE крэшится....
я перезапускаю IE и проверяю функционал BHO — и оно работает!!
Но что я делаю не так?
Почему может крэшится IE?
Верно ли предположение о возможности апдейта bho?
Какой способ распространения bho предпочтителен?
Обязательно ли нужно подписывать bho.dll? нужно ли подписывать bho.cab?
Подскажите, а кто выдает сертификаты подешевле?
Спасибо заранее за любую помощь.
Подписывать надо как DLL так и сам CAB.
С обновлением дела не на столько просто, но можно и так:
1. CAB файл содержит в себе 2-а DLL файла "прокси.dll" и "бхо.dll".
2. В системе, как BHO, регистрируется только "прокси.dll", который представляет собой загрузчик "бхо.dll".
3. Обновлением "бхо.dll" занимается "бхо.dll" или "прокси.dll" (на твой выбор) банальным скачивванием новой
версии в локальный профиль и запоминанием его где либо).
Как то так...
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>