我创建了一个运行良好的 IE 带对象(工具栏)。但是,当安装在新机器上时,默认情况下它是不可见的。当然,可以通过右键单击工具栏区域并选择它来打开它,但是,我想知道注册表中是否有一种方法或选项可以让我在安装后直接打开工具栏。
有谁知道如何做到这一点?
谢谢!
我创建了一个运行良好的 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,这可能会变得很棘手。