首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问:怎么获取多选项卡IE,当前浏览的是哪个页面?

2012-02-02 
请教:如何获取多选项卡IE,当前浏览的是哪个页面??C/C++ codeSHDocVw::IShellWindowsPtr m_spSHWinds//初

请教:如何获取多选项卡IE,当前浏览的是哪个页面??

C/C++ code
SHDocVw::IShellWindowsPtr m_spSHWinds;//初始化Com环境    CoInitialize(NULL);    m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));    if(m_spSHWinds)    {        //获得ie数量        int n = m_spSHWinds->GetCount(); //这个可以获取到所有IE的页面。。         }


现在可以获取到所有 IE 的打开页面,(IE8浏览器),

怎么判断当前的浏览页面是哪个?

例如:选项卡页面有一下几个网页

新浪,百度,QQ,163等等的选项卡

如何知道当前浏览页面是 百度 哪???

[解决办法]
查找下IE窗口的标题是什么,用FindWindow()根据类名“IEFrame”查找IE窗口,再用GetWindowText得到窗口标题
[解决办法]
C/C++ code
HWND CMyRock::GetMenuParentIE8()    {        long nBrowser = 0;        m_spWebBrowser->get_HWND(&nBrowser);        HWND hWndParent = (HWND)nBrowser;           HWND hWnd = GetWindow(hWndParent, GW_CHILD);        // 查询主窗体,用SPY++看,会明白一些        if(hWnd)        {            TCHAR szClassName[MAX_PATH];            while(hWnd)            {                memset(szClassName,0,MAX_PATH);                GetClassName(hWnd, szClassName, MAX_PATH);                if(_tcscmp(szClassName,_T("Frame Tab"))==0)                {    //              if(IsWindowVisible(hWnd))                    {                        hWnd = GetWindow(hWnd, GW_CHILD);                        while(hWnd)                        {                            memset(szClassName, 0, MAX_PATH);                            GetClassName(hWnd, szClassName, MAX_PATH);                            if(_tcscmp(szClassName,_T("TabWindowClass"))==0)                            {                                hWnd = GetWindow(hWnd, GW_CHILD);                                while(hWnd)                                {                                    memset(szClassName, 0, MAX_PATH);                                    GetClassName(hWnd, szClassName, MAX_PATH);                                    if(_tcscmp(szClassName,_T("Shell DocObject View"))==0)                                    {                                        hWnd = FindWindowEx(hWnd, NULL, _T("Internet Explorer_Server"), NULL);                                        MessageBox(NULL, L"111", L"2222", 1);                                        break;                                    }                                    hWnd = GetWindow(hWnd, GW_HWNDNEXT);                                }                            }                            hWnd = GetWindow(hWnd, GW_HWNDNEXT);                        }                    }                }                hWnd = GetWindow(hWnd, GW_HWNDNEXT);            }        }        return hWnd;    }
[解决办法]
这个?
http://topic.csdn.net/t/20021118/14/1185841.html
[解决办法]
HWND mainWnd = NULL, addressEdit = NULL;

mainWnd = ::FindWindowEx( mainWnd, NULL, TEXT( "WorkerW" ), NULL );
mainWnd = ::FindWindowEx( mainWnd, NULL, TEXT( "ReBarWindow32" ), NULL );
mainWnd = ::FindWindowEx( mainWnd, NULL, TEXT( "Address Band Root" ), NULL);
addressBarEdit = ::FindWindowEx( mainWnd, NULL, TEXT( "Static" ), NULL);

对这个窗口发送WM_GETTEXT,参考:http://www.vckbase.com/document/viewdoc/?id=240

热点排行