2009-05-07 7 views
2

J'ai créé un objet bande IE (barre d'outils) qui fonctionne bien. Cependant, lorsqu'il est installé sur une nouvelle machine, il n'est pas visible par défaut. Bien sûr, on peut l'activer en cliquant droit sur la zone de la barre d'outils et en la sélectionnant, cependant, je voudrais savoir s'il existe un moyen ou une option dans le registre qui me permettra d'activer la barre directement après l'installation.Barre d'outils IE, visible par défaut

Est-ce que nous savons comment faire?

Merci!

Répondre

2

Vous pouvez afficher la barre d'outils de BHO programatically (vous pouvez trouver plus d'informations au sujet de faire BHO here):

STDMETHODIMP MyBHO::SetSite(IUnknown *pUnkSite) 
{ 
    if(/*is this the first run since BHO was installed?*/) 
    { 
     CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> webBrowser2 = pUnkSite; 
     if(webBrowser2 != NULL) 
     { 
      VARIANT vtBandGUID, vtShow, vtSize; 

      vtBandGUID.vt = VT_BSTR; 
      vtBandGUID.bstrVal = SysAllocString(OLESTR("{TOOLBAR-GUID}")); 

      vtShow.vt = VT_BOOL; 
      vtShow.boolVal = true; 

      vtSize.vt = VT_I2; 
      vtSize.iVal = 0; 

      webBrowser2->ShowBrowserBar(&vtBandGUID, &vtShow, &vtSize); 
      SysFreeString(vtBandGUID.bstrVal); 
     } 
    } 

    return S_OK; 
} 
+0

comment ne pas afficher le bouton par défaut? J'ai essayé de changer le 'vrai' en 'faux', mais ça ne marche pas. – karikari

0

Juste une supposition mais peut-être ceci est le comportement par défaut d'IE pour permettre à l'utilisateur d'avoir un choix quoi qu'il encombre le navigateur avec?

0

Ce n'est pas une réponse définitive, mais vous pouvez exécuter Sysinternals Process Monitor, en filtrant uniquement les modifications du registre, et enregistrer ce qui se passe lorsque vous rendez votre barre d'outils visible manuellement. Ensuite, assurez-vous de le faire dans vos scripts d'installation. Cela peut être délicat si l'entrée de registre de la barre d'outils reçoit un GUID ou un ID que vous ne contrôlez pas.

Questions connexes