王朝网络
分享
 
 
 

C++中如何显示/隐藏IE浏览器工具窗口

王朝c/c++·作者佚名  2008-06-01
宽屏版  字体: |||超大  

本文讲述如何在程序中控制显示/隐藏所有的IE浏览器工具窗口,如“收藏”,“历史”,“搜索”等左侧窗口。

实现流程:

在同一个时刻,系统中可能存在N个Shell窗口(包括IE窗口和文件浏览器窗口),需要遍历每个Shell窗口并将文件浏览器窗口排除(因为我们只对IE窗口进行处理),然后再取得IWebBrowser2,调用ShowBrowserBar函数,这个函数在MSDN中描述如下:

HRESULT ShowBrowserBar(VARIANT *pvaClsid,

VARIANT *pvarShow,

VARIANT *pvarSize

);

可重用代码如下(已经过测试,无法编译者请查自身的问题或咨询ccrun):

#pragma link "bcbie.lib"

#include "SHDocVw_OCX.h"

//---------------------------------------------------------------------------

void __fastcall MyShowIEBrowserBar(LPSTR lpCLSID, bool bShow)

{

Variant v1, v2, v3;

String strCLSID(lpCLSID);

v1 = strCLSID.c_str(); // 要显示/隐藏的工具窗口CLSID

v2 = bShow; // 是否显示

v3 = 0; // 略

//---------------------------------------------------------------------------

// 抱歉,这个提示又来了,为了防止不负责任的转载者,只好在此留些信息。

// by ccrun(老妖) info@ccrun.com

// 欢迎访问 C++Builder研究 - http://www.ccrun.com

//---------------------------------------------------------------------------

TCppShellWindows *pShellWin = new TCppShellWindows(NULL);

// 遍历每个Shell窗口

for(int i=0; i<pShellWin->Count; i++)

{

IDispatch *pDisp = (IDispatch *)pShellWin->Item(Variant(i));

if(pDisp == NULL)

continue;

// 取得IWebBrowser2接口

IWebBrowser2 *pBrowser;

HRESULT hr = pDisp->QueryInterface(IID_IWebBrowser2, (void**)&pBrowser);

pDisp->Release();

if(SUCCEEDED(hr))

{

String strUrl = String(pBrowser->get_LocationURL()); // 获取浏览器地址

if(strUrl.LowerCase().SubString(1, 5) == "file:") // 排除文件治理器

continue;

pBrowser->ShowBrowserBar(v1, v2, v3); // 显示或隐藏浏览工具窗口

}

}

delete pShellWin;

}

// MyShowIEBrowserBar("{EFA24E61-B078-11d0-89E4-00C04FC9E26E}", 1); // 显示收藏夹

// MyShowIEBrowserBar("{30D02401-6A81-11d0-8274-00C04FD5AE38}", 0); // 隐藏搜索栏

其他IE工具窗口CLSID参考:

Favorites {EFA24E61-B078-11d0-89E4-00C04FC9E26E}

Folders {EFA24E64-B078-11d0-89E4-00C04FC9E26E}

History {EFA24E62-B078-11d0-89E4-00C04FC9E26E}

Search {30D02401-6A81-11d0-8274-00C04FD5AE38}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有