【发布时间】:2010-10-24 09:43:32
【问题描述】:
我创建了一个运行良好的 IE 带对象(工具栏)。但是,当安装在新机器上时,默认情况下它是不可见的。当然可以通过右键单击工具栏区域并选择它来打开它,但是,我想知道注册表中是否有一种方法或选项可以让我在安装后立即打开工具栏。
有没有人知道怎么做?
谢谢!
【问题讨论】:
标签: internet-explorer registry default toolbar visibility
我创建了一个运行良好的 IE 带对象(工具栏)。但是,当安装在新机器上时,默认情况下它是不可见的。当然可以通过右键单击工具栏区域并选择它来打开它,但是,我想知道注册表中是否有一种方法或选项可以让我在安装后立即打开工具栏。
有没有人知道怎么做?
谢谢!
【问题讨论】:
标签: internet-explorer registry default toolbar visibility
您可以通过 BHO 以编程方式显示工具栏(您可以找到有关制作 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;
}
【讨论】:
不是一个确定的答案,但您可以运行 Sysinternals Process Monitor,仅过滤注册表更改,并记录手动使工具栏可见时发生的情况。然后确保在安装脚本中执行此操作。如果为工具栏注册表项分配了您无法控制的 GUID 或 ID,这可能会变得很棘手。
【讨论】:
只是一个猜测,但也许这是 IE 的默认行为,让用户可以选择任何让浏览器混乱的东西?
【讨论】: