Frage

Ich habe ein IE-Bandobjekt (Symbolleiste) erstellt, das gut funktioniert.Bei der Installation auf einem neuen Computer ist es jedoch standardmäßig nicht sichtbar.Natürlich kann man es aktivieren, indem man mit der rechten Maustaste auf den Symbolleistenbereich klickt und ihn auswählt. Ich würde jedoch gerne wissen, ob es in der Registrierung eine Möglichkeit oder Option gibt, die es mir ermöglicht, die Leiste direkt nach der Installation zu aktivieren.

Weiß jemand, wie das geht?

Danke!

War es hilfreich?

Lösung

Sie können die Symbolleiste programmgesteuert von BHO aus anzeigen (weitere Informationen zum Erstellen von BHOs ​​finden Sie hier). Hier):

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;
}

Andere Tipps

nur eine Vermutung, aber mayhaps dies ist das Standardverhalten von Internet Explorer, damit der Benutzer eine Wahl unabhängig von s haben? Er clutters den Browser mit?

Nicht eine definitive Antwort, aber man kann Sysinternals Process Monitor läuft, Filterung nur auf Änderungen in der Registrierung, und notieren Sie, was passiert, wenn Sie manuell Ihre Symbolleiste sichtbar machen. Dann stellen Sie sicher, dass in Ihrem Installationsskripts tun. Dies kann schwierig werden, wenn der Symbolleiste Registrierungseintrag eine GUID oder ID zugewiesen wird, die Sie nicht kontrollieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top