Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Подключение к браузерам 
:(
    Опции темы
Alligator821
Дата 6.3.2009, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.2.2009

Репутация: нет
Всего: нет



Приветствую всех!!!
Подскажите как подключиться к запущенным браузерам, чтобы получить всю коллекцию элементов. Я решил проблему для браузера IE, а как быть с Opera, Firefox, и другими браузерами и вообще с какими можно работать. Пожалуйста подскажите кто что знает очень нужно.
PM MAIL   Вверх
chaos
Дата 12.3.2009, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



надо копать в сторону АПИ для каждого браузера(IE не в счет)
PM WWW   Вверх
nerdy_weirdie
Дата 20.3.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2007

Репутация: нет
Всего: нет



Подскажи пожалуйста, как ты решил вопрос с подключением к окну IE?
PM MAIL   Вверх
Alligator821
Дата 20.3.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.2.2009

Репутация: нет
Всего: нет



Цитата(nerdy_weirdie @ 20.3.2009,  13:48)
Подскажи пожалуйста, как ты решил вопрос с подключением к окну IE?

Код

    case WM_TIMER:
        {
            KillTimer(hDlgLV,1);
            //код
            wchar_t *m_Str;

            LVITEM     lvI; 
            lvI.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;  // | LVIF_PARAM | LVIF_STATE
            lvI.state = 1; 
            lvI.stateMask = 0; 
            HWND hLV1 = ::GetDlgItem(hDlgLV, IDC_LISTVIEW);

            ListView_DeleteAllItems(hLV1);
            IHTMLElementCollection *pElement = NULL;
            CoInitialize(NULL);
            CComPtr<IShellWindows> spShWin;
            if (FAILED(spShWin.CoCreateInstance( __uuidof( ShellWindows))))    break;
            // Получаем количество открытых окон
            LONG nCount;
            nCount=0;
            spShWin->get_Count( &nCount);
            if (nCount==0) {}
            else
            {
                for (int i=0; i<nCount; i++)
                {
                    // Получаем очередное окно
                    CComPtr<IDispatch> pDisp;
                    spShWin->Item( CComVariant(i), &pDisp);
                    CComQIPtr<IWebBrowser2> pIE( pDisp);
                    if (pIE == NULL)
                        break;
                    // Получаем URL закруженного документа (открытой папки)
                    USES_CONVERSION;
                    CComBSTR bsUrl;
                    //                    VARIANT ;//varName, , var;
                    pIE->get_LocationURL(&bsUrl);     
                    LPTSTR lpstrUrl = W2T(bsUrl);
                    // Пробуем получить html-документ
                    CComPtr<IDispatch> pDispDoc;
                    pIE->get_Document( &pDispDoc);
                    
                    CComQIPtr<IHTMLDocument2> pHtmlDoc( pDispDoc);    
                    VARIANT pVAR;
//                    Sleep(10000);
                    for (;;)
                    {
                        pHtmlDoc->get_onmouseover(&pVAR);
                        
                        Sleep(5000);
                    }
                    
                    char goppog[255]={0};
                    sprintf_s(goppog, "%S", lpstrUrl);
                    // Если документ удается получить, значит это окно Internet Explorer'а
                    if ((pHtmlDoc) && (strcmp(goppog,g_Peremen1.szPuth) == 0))
                    {
                        pHtmlDoc->get_all(&pElement);
                        VARIANT varName, varIndex;
                        BSTR bstr;
                        long NumItems = 0;
                        pElement->get_length(&NumItems);
                        if (!NumItems)    break;

                        HWND hWndProgress = GetDlgItem(hDlgLV, IDC_PROGRESS1);
                        SendMessage(hWndProgress, PBM_SETRANGE, 0,MAKELPARAM(0, NumItems)); 
                        for (int item_number_index = 0; item_number_index < NumItems; item_number_index++)
                        {
                            SendMessage(hWndProgress, PBM_SETPOS, item_number_index, 0); 

                            varName.vt = VT_I4;
                            varName.lVal = item_number_index;
                            varIndex.vt = VT_I4;
                            varIndex.lVal = 1;
                            IDispatch *pdisp2 = NULL;

                            if (pElement->item (varName, varIndex, &pdisp2) != S_OK) break;
                            if (pdisp2 == NULL)    break;

                            IHTMLElement *pItem = NULL;
                            IHTMLInputElement *pItem1 = NULL;
                            pdisp2->QueryInterface (IID_IHTMLElement, (LPVOID *) &pItem); 
                            pdisp2->QueryInterface (IID_IHTMLInputElement, (LPVOID *) &pItem1);
                            if (pItem == NULL)    break;

                            char  TempVariable[255]={0};    
                            char lop1[50]={0};
                            pItem->get_tagName(&bstr);
                            m_Str = bstr;
                            lvI.iItem = item_number_index;  
                            lvI.pszText =  m_Str;
                            lvI.iSubItem = C_TAGNAME;
                            ListView_InsertItem(hLV1, &lvI);
                            if (wcscmp(m_Str,L"INPUT") == 0)
                            {
                                pItem1->get_type(&bstr);
                                m_Str = bstr;
                                ListView_SetItemText(hLV1, item_number_index, C_TYPE, m_Str);
                                if (wcscmp(m_Str,L"button") == 0) 
                                {
                                    pItem1->get_value(&bstr);
                                    m_Str = bstr;
                                    ListView_SetItemText(hLV1, item_number_index, C_VALUE, m_Str);
                                    if ((wcscmp(m_Str, g_Peremen1.szButton) == 0) && (g_Peremen1.CheckStButton == TRUE))
                                    {
                                        pItem->click();
                                    }
                                }
                                if (wcscmp(m_Str,L"text") == 0) 
                                {
                                    pItem1->get_name(&bstr);
                                    m_Str = bstr;
                                    ListView_SetItemText(hLV1, item_number_index, C_NAME, m_Str);
                                    if ((wcscmp(m_Str,g_Peremen1.szEdit) == 0) || (g_Peremen1.CheckStEdit == FALSE)) 
                                    {
                                        pItem1->get_value(&bstr);
                                        m_Str = bstr;
                                        ListView_SetItemText(hLV1, item_number_index, C_VALUE, m_Str);
                                    }
                                }
                            }
                        }
                        pIE->Refresh();
                    } 
                }
            }
            if(g_Timer && (g_Peremen1.CheckStUpdate == TRUE)) SetTimer(hDlgLV,1,1000*g_Peremen1.Time,NULL);
            break;
        }


PM MAIL   Вверх
guestik
Дата 23.3.2009, 15:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



Добрый день!
Может кто знает, как можно в IE на загруженной странице поменять все ссылки на другие, н-р, на www.ya.ru?
PM MAIL   Вверх
doook
Дата 22.9.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 31.5.2007
Где: Украина, Киев

Репутация: нет
Всего: нет



Цитата(guestik @ 23.3.2009,  15:37)
Добрый день!
Может кто знает, как можно в IE на загруженной странице поменять все ссылки на другие, н-р, на www.ya.ru?

Я так полагаю пытаешся боротся с открытием странц в новых окнах?

PM MAIL ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.