Запустите IE с включенным определенным BHO - PullRequest
1 голос
/ 12 мая 2010

У меня есть плагин IE BHO, который я хочу включить, только когда пользователь запускает IE из моей программы (программа запускает IE, используя CreateProcess()).

Я не хочу, чтобы этот BHO был включен, когда пользователь запускает IE из-за пределов моей программы, так как это может означать, что любые проблемы в BHO могут потенциально испортить обычные возможности просмотра.

Какой лучший способ сделать это?

Один из способов - зарегистрировать BHO, запустить IE, а затем быстро отменить регистрацию BHO. Это выглядит довольно грязно, поскольку сбой программы, запускающей IE, может привести к тому, что BHO останется зарегистрированным.

1 Ответ

1 голос
/ 12 мая 2010

Ваш подход очень подвержен ошибкам, я советую против этого. Вместо этого ваш BHO всегда должен загружаться с IE, но по умолчанию он ничего не должен делать. Тогда вам нужен способ сказать «начать фильтрацию» или «начать запись» или что-то в этом роде.

У вас есть много вариантов оттуда. Самым простым является флаг где-то в среде (семафор, файл на диске). У вас может быть специальный URL, например mybho:start, за которым он следит.

Я делал это много раз, это работает.

Редактировать Да, BHO будет загружен в память вместе со всеми DLL, от которых он зависит (хотя вы можете ждать и загружать их только при необходимости через LoadLibrary()).

...