Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Снова авторизация, но не в своем окне

16K
01 сентября 2008 года
Alfá
59 / / 12.01.2007
Здравствуйте.

Знаю как выполнить авторизация на страничке, используя TWebBrowser. Но это получается авторизация в своей программке. А как авторизоваться в чужом приложении, а именно в IE? Это как-то надо найти text и submit в окне эксплорера? Но как, подскажите?
246
12 сентября 2008 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Alfá;256866]Здравствуйте.
Знаю как выполнить авторизация на страничке, используя TWebBrowser. Но это получается авторизация в своей программке. А как авторизоваться в чужом приложении, а именно в IE? Это как-то надо найти text и submit в окне эксплорера? Но как, подскажите?[/QUOTE]
Для того чтобы авторизоваться именно в IE нужно получить IHTMLDocument2 страницы где надо найти text и submit.
Это можно сделать несколькими способами:
1. Через интерфейс IShellWindows
Получаешь данный интерфейс, проходишь по коллекции итемов и пытаешь ся просить у каждого интерфейс IWebBrowser2.
Код:
...
        LONG nCount;
        pSW->get_Count( &nCount); // pSW указатель на IShellWindows

        for (int i=0; i<nCount; i++)
        {
            // get next window
            TComInterface<IDispatch> pDisp;
            pSW->Item( TVariant(i), &pDisp);
            TComInterface<IWebBrowser2> pIE;
            pDisp->QueryInterface(IID_IWebBrowser2, (LPVOID*)&pIE);
            if (pIE)
            {
...


если успешно, то это IE (а не Explorer). Далее проверяешь та-ли страница и запрашиваешь IHTMLDocument2
Код:
...
                // get URL
                WideString wsUrl;
                pIE->get_LocationURL( &wsUrl);

                // trying to get htmldoc
                TComInterface<IDispatch> pDispDoc;
                pIE->get_Document( &pDispDoc);
                TComInterface<IHTMLDocument2> pHtmlDoc;
                pDispDoc->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pHtmlDoc);

                // if Ok, - Internet Explorer'&#224;
                if (pHtmlDoc)
                {
...

можно авторизовываться.

2. Или можно полцчить IHTMLDocument2 через дескриптор окна спомощью ObjectFromLresult(), функция находится в OLEACC.DLL
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог