2009-11-16 7 views
2

Je voudrais trouver un moyen d'énumérer les onglets ouverts (et les URL correspondantes) des onglets ouverts dans Internet Explorer. J'ai trouvé this question, ce qui suggère qu'il n'est pas possible de le faire en général, mais je cherche spécifiquement des solutions pour IE7 et IE8.Énumérer les onglets ouverts dans Internet Explorer?

Je préférerais les solutions Win32 seulement (je ne veux pas prendre une dépendance sur .NET, si possible).

Je suis ouvert à l'écriture d'une sorte de plugin pour Internet Explorer, si c'est nécessaire. Des pointeurs?

Répondre

2

IE n'expose pas une méthode d'énumération des onglets prise en charge. Ce que vous avez à faire est d'écrire un BHO qui coule DWebBrowserEvents2::WindowStateChanged. Votre BHO sera chargé une fois par onglet, et vous obtiendrez un événement WindowStateChanged chaque fois que l'utilisateur bascule les onglets vers l'ancien et le nouvel onglet. Il suffit ensuite de conserver une carte globale des BHO en onglets et un pointeur vers lequel se trouve l'onglet actif basé sur les événements WindowStateChanged.

Remarque: Vous pouvez écrire une barre d'outils, au lieu d'une BHO, qui fait la même chose. Cela dépend si vous voulez ou non l'interface utilisateur.