Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Записать что-нибудь в текстовое поле и прочитать


Автор: ksili 23.11.2007, 09:30
Как в CppWebBrowser на загруженной из интернета странице что-нибудь записать в поле ввода текста или почитать его содержимое. Пробовал свойства PutProperty и GetProperty - не помогло.
Код

void __fastcall TForm1::btn2Click(TObject *Sender)
{
 Variant name;
 cpwbrwsr1->PutProperty((Variant)"Login",(Variant)"qwerty");

 name = cpwbrwsr1->GetProperty((Variant)"Login");
}


name как было ???? так и осталось. Да и визуально на странице ничего не изменяется
Подскажите пожалуйста. 

Может надо сначала фокус передать на этот элемент? Как?

Автор: ksili 23.11.2007, 11:07
В HTML-коде нужные поля ввода выглядят насколько я понимаю так:
Код

<input type="text" tabindex="1" name="Login" size="12" maxlength="255" style="font-size: 10px; width: 100px;">
<input tabindex="2" type="password" name="Password" size="12" maxlength="255" style="font-size: 10px; width: 100px;">

Автор: ksili 23.11.2007, 13:17
Сам разобрался:
Код

    if( cpwbrwsr1->Document )
    {
        TComInterface<IHTMLDocument2> pDocument;
        cpwbrwsr1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);

        if( pDocument )
        {
            TComInterface<IHTMLElementCollection> pCollection;
            pDocument->get_all(&pCollection);

            if( pCollection )
            {
                TComInterface<IDispatch> pDisp1;
                TComInterface<IDispatch> pDisp2;
                TComInterface<IHTMLElement> pElement1;
                TComInterface<IHTMLElement> pElement2;

                pCollection->item(Variant(WideString("Name")), Variant(0), &pDisp1);

                if( pDisp1 )
                {
                    //TComInterface<IHTMLElement> pElement;
                    pDisp1->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement1);

                    if( pElement1 )
                    {
                        pElement1->put_innerText(str1);
                    }
                }

                pCollection->item(Variant(WideString("Password")), Variant(0), &pDisp2);
                if( pDisp2 )
                {
                    //TComInterface<IHTMLElement> pElement;
                    pDisp2->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement2);

                    if( pElement2 )
                    {
                        pElement2->put_innerText(str2);
                    }
                }
            }
        }
    }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)