Question

J'ai un plugin IE BHO que je veux seulement être activé lorsque l'utilisateur lance IE de mon programme (Le programme commence en utilisant IE CreateProcess()).

Je ne veux pas que ce BHO doit être activé lorsqu'un utilisateur lance Internet Explorer en dehors de mon programme, car cela signifierait des problèmes dans le BHO pourrait potentiellement gâcher l'expérience de navigation normale de l'utilisateur.

Quelle est la meilleure façon de le faire?

Un moyen serait d'enregistrer le BHO, lancez IE puis désenregistrer rapidement le BHO. Cela semble un peu en désordre mais, comme un accident dans le programme qui lance IE pourrait provoquer le BHO de rester enregistré.

Était-ce utile?

La solution

Votre approche est très sujette à l'erreur, je le déconseille. Au lieu de cela, votre BHO doit toujours charger avec IE, mais par défaut, il ne devrait rien faire. Ce que vous avez besoin est alors un moyen de lui dire « commencer à filtrer » ou « commencer l'enregistrement » ou autre.

Vous avez beaucoup de choix à partir de là. Le plus simple est un drapeau quelque part dans l'environnement (un sémaphore, un fichier de disque). Vous pouvez avoir une url spéciale, comme mybho:start qu'il guette.

Je l'ai fait plusieurs fois, cela fonctionne.

Modifier Oui, le BHO sera chargé en mémoire, ainsi que les DLL qu'il dépend (bien que vous pouvez attendre et de les charger uniquement en cas de besoin via LoadLibrary()).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top