質問

iは、うまく機能しているIEバンドオブジェクト(ツールバー)を作成しました。ただし、新しいマシンにインストールした場合、デフォルトでは表示されません。もちろん、ツールバー領域を右クリックして選択することで有効にすることができますが、レジストリにインストール後すぐにバーを有効にする方法またはオプションがあるかどうかを知りたいです

これを行う方法を知っていますか?

ありがとう!

役に立ちましたか?

解決

BHOからプログラムでツールバーを表示できます(BHOの作成に関する詳細情報を参照できますこちら):

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

他のヒント

推測ではありますが、おそらくこれはIEのデフォルトの動作であり、ユーザーがブラウザを乱雑に選択できるようにしますか?

決定的な答えではありませんが、Sysinternals Process Monitorを実行して、レジストリの変更のみをフィルタリングし、ツールバーを手動で表示した場合の動作を記録できます。次に、インストールスクリプトでそれを確認します。ツールバーのレジストリエントリに、ユーザーが制御できないGUIDまたはIDが割り当てられている場合、これは難しい場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top