枚举当前环境中打开的所有IE
2009-03-21 15:08
176 查看
IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合.
首先添加程序需要的头文件和tlb库
调用:
EnumInternetExplorer( ShowIETitle );
首先添加程序需要的头文件和tlb库
//... #import <shdocvw.dll> #import <mshtml.tlb> #include <mshtml.h> //... //定义IE程序处理函数指针 typedef void (*ProcessWebBrowser)( const SHDocVw::IWebBrowser2Ptr pBrowser ); /* * 枚举当前打开的IE窗口,并输出网页的标题 */ BOOL EnumInternetExplorer( ProcessWebBrowser pHander ) { //IE属于shell的一个应用程序,再次需要枚举ShellWindows集合 SHDocVw::IShellWindowsPtr spSHWinds; if( FAILED( spSHWinds.CreateInstance( __uuidof( SHDocVw::ShellWindows ) ) ) ) return FALSE; //获取ShellWindows集合的数目 long nCount = spSHWinds->GetCount(); for ( long lIndex = 0; lIndex < nCount; lIndex++ ) { //枚举每个项 IDispatchPtr spDisp; _variant_t var( lIndex, VT_I4 ); spDisp = spSHWinds->Item( var ); if ( spDisp != NULL ) { //Query网页接口 SHDocVw::IWebBrowser2Ptr spBrowser( spDisp ); if( ( spBrowser != NULL ) && ( pHander != NULL ) ) { //调用处理函数 pHander( spBrowser ); } } } return TRUE; } void ShowIETitle( const SHDocVw::IWebBrowser2Ptr pBrowser ) { //获取网页的文档接口 MSHTML::IHTMLDocument2Ptr spDoc( pBrowser->GetDocument() ); if( spDoc != NULL ) { CComBSTR bstr; //获取标题 spDoc->get_title( &bstr ); //bstr即为网页标题 _bstr_t bstr_adapt = bstr; TCHAR* szTitle = bstr_adapt; AtlMessageBox( NULL, szTitle ); } }
调用:
EnumInternetExplorer( ShowIETitle );
相关文章推荐
- 枚举当前环境中打开的所有IE
- 枚举当前环境中打开的所有IE
- 枚举当前打开的所有窗口
- 枚举当前打开的所有窗口
- MDI环境下枚举所有打开的窗口
- 枚举当前打开的所有窗口
- 枚举当前所有的 IE 窗口 - 回复 "混岗" 的问题
- VC++MFC 枚举当前打开的所有窗口
- 枚举当前打开的所有窗口
- 获取所有IE当前浏览的Url
- 枚举当前所有的显示器信息
- 枚举所有IE窗口,实现自动登录
- IE 取得打开网页中的所有email地址源码
- c# 枚举windows当前的所有窗口及子窗口
- C#取得当前进程所有打开的窗体
- 在QTP中列举当前打开的所有浏览器对象的函数
- CEF Xilium.CefGlue 在当前窗口中打开所有链接(防止弹窗)
- 窗体句柄:枚举出当前系统所有窗体句柄
- 从当前进程检索所有环境变量名及其值
- 每次打开IE提示“当前安全设置会使计算机有风险。请单击这里更改安全设置”