做了个toolbar,可是安装后不会在IE上自动显示,非要右键选择才能显示,怎么解决? --- 没人会么?(100分)

  • 主题发起人 主题发起人 336764
  • 开始时间 开始时间
3

336764

Unregistered / Unconfirmed
GUEST, unregistred user!
做了个toolbar,可是安装后不会在IE上自动显示,非要右键选择才能显示,怎么解决?
我想让他安装后,注册后 ,打开IE就能显示工具条。不用再点右键选择该工具条才能显示。怎么写?
 
我觉得应该看看toolbar的visible属性
 
试过,不行。
我感觉好像应该是注册表写入的事儿,不应该是由程序本身控制,而是由IE控制的。所以应该是改注册表的哪个位置。。。。什么什么属性。。。
 
问========================================

eagleboost,您好!
在csdn上看到你以前写的关于IE编程方面的文章,看得出来你对这方面非常熟悉。我现在有个问题想请教一下你,就是我已经做了一个类似google工具条的东西,已经注册了,但要自己去右键菜单勾上才能显示出来。
我想让它一注册,ie就默认将其显示出来,不知道要修改注册表什么地方?
麻烦你解答一下,非常感谢!
2004-09-22

答========================================

你的问题比较常见。
标准的,也是最好的办法是在你的工具条之外再实现一个Browser Helper Object(BHO),比如下面的CShowBarObj,并在IObjectWithSite::SetSite方法中调用IWebBrowser2的ShowBrowserBar函数来显示你的工具条。VC中的例子如下:

STDMETHODIMP CShowBarObj::SetSite(IUnknown *pUnkSite)
{
if (NULL != pUnkSite)
{
IWebBrowser2 *pBrowser = NULL;
// Ensure that our site is an browser window
HRESULT hr = pUnkSite->QueryInterface(IID_IWebBrowser2, (void **) &pBrowser);
if (SUCCEEDED(hr))
{
// Display the band object (the Search bar in this case)
VARIANT vtBandGUID, vtShow;
vtBandGUID.vt = VT_BSTR;
//把这里的CLSID换成你的工具条CLSID
vtBandGUID.bstrVal = SysAllocString(OLESTR("{30D02401-6A81-11D0-8274-00C04FD5AE38}"));
vtShow.vt = VT_BOOL;
vtShow.boolVal = true;
pBrowser->ShowBrowserBar(&vtBandGUID, &vtShow, 0);
SysFreeString(vtBandGUID.bstrVal);
pBrowser->Release();
}
}
return S_OK;
}

引用地址:FAQ:启动IE时自动显示工具条
 
或许可以引用一下。。。,。。就是不知道具体怎么改了。
 
IWebBrowser2::ShowBrowserBar Method
好像可以用showbrowserebar ,
而且确实有这个函数,但是不知道怎么用。MSDN也没查出来。写什么都编译不过去。。。怎么办?请问。。。
 
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Toolbar/WebBrowser/ITBarLayout
键下是保存的位置信息,但却不知道这串二进制数据的格式...
删除这个键值的话,启动IE,GOOGLE的工具条会单独一行显示出来,而一般的却根本没有显示....
 
怎么解决啊???到现在还是没有个最终的答案。
 
真就没有人弄过呀。。。
 
怎么就没有一个人会么?还是会的人都不愿意告诉别人怎么弄?
 
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Toolbar/WebBrowser/ITBarLayout

对,就是改这里,监视过GoogleToolbar,他就是改这里实现显示的。问题是,不知道这个ITBarLayout应该怎么改才对。
 
我也不知道。。。。。。。。。。。。。完全没有规律。
 
后退
顶部