Управление Web-страничкой с помощью С++builder

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем -, 1 май 2010.

  1. Гость

    В общем, пытаюсь написать что то похожее на программу для отправки смс. Использую эту страничку нашего провайдера:отправка смс на IDC .

    На этой странце 4 поля ввода картинка с капчей и кнопка"отправить". Симитировать нажатие на кнопку у меня получилось, а также получилось заполнить поля ввода номера телефона(name="txtAddr") и поле ввода капчи(name="code"). Сделал я это с помощью следующего кода:

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Раскрывающийся Текст кода</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    void __fastcall TForm1::Button1Click(TObject *Sender)//вставить номер
    {
    String Name = "txtAddr";  //
    String Data = Edit1->Text;
    TComInterface<IHTMLDocument2>        pDoc;
    TComInterface<IHTMLElementCollection> pColl;
    TComInterface<IDispatch>              pTmpDisp;
    TComInterface<IHTMLInputElement>      pElement;
    TComInterface<IDispatch>              pDisp;
    if ( SUCCEEDED (WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc)))  {
    if ( SUCCEEDED (pDoc->get_all(&pColl)))              {
    if ( SUCCEEDED (pColl->item(TVariant(WideString(Name)), TVariant(0), &pDisp))) {
    pElement = pDisp;
    pElement->put_value(WideString(Data));
    }
    }
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)//отправить смс
    {
    String Name="Submit2";
    if( WB->Document )  {
    TComInterface<IHTMLDocument2> pDocument;
    WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
    if( pDocument )     {
    TComInterface<IHTMLElementCollection> pCollection;
    pDocument->get_all(&pCollection);
    if( pCollection )           {
    TComInterface<IDispatch> pDisp;
    pCollection->item(TVariant(WideString(Name)), TVariant(0), &pDisp);
    if( pDisp )             {
    TComInterface<IHTMLElement> pElement;
    pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
    if( pElement )                  {
    pElement->click();
    }
    }
    }
    }
    }
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button3Click(TObject *Sender) //ввод капчи
    {
    String Name = "code";  //
    String Data = Edit1->Text;
    TComInterface<IHTMLDocument2>        pDoc;
    TComInterface<IHTMLElementCollection> pColl;
    TComInterface<IDispatch>              pTmpDisp;
    TComInterface<IHTMLInputElement>      pElement;
    TComInterface<IDispatch>              pDisp;
    if ( SUCCEEDED (WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc)))  {
    if ( SUCCEEDED (pDoc->get_all(&pColl)))              {
    if ( SUCCEEDED (pColl->item(TVariant(WideString(Name)), TVariant(0), &pDisp))) {
    pElement = pDisp;
    pElement->put_value(WideString(Data));
    }
    }
    }
    }

    Пытался также заполнить остальные два поля однако выдает ошибку , что то вроде Query интерфейс не выполняется и т д...

    Вопрос звучит так: что мне нужно поменять в моем коде чтоб можно было заполнить 1-е и 3-е поле ввода? Или может у кого нибудь есть исходник...
    Буду очень благодарен за любую помощь.
     
  2. Гость

    Так что никто не может мне помочь с заполнением этих полей ввода..?
    Подскажите хоть как мне вывести в окно программы картинку с капчей, без всего остального содержимого сайта?
     
  3. Гость

    В общем c Textarea я разобрался. Осталось одно поле ввода типа SELECT.
    Как выбрть значение из выпадающего меню CELECT?
    Вот что в HTML странице:
    Код (PHP):
     
    <td><select name="prefix" class="inp">
    <option selected>777</option>
    <option>774</option>
    <option>778</option>
    <option>779</option>
    <option>562</option>
    </select>
    </td>
    Как мне выбрать одно из этих значений? Может связать это как то с ComboBox?
    В общем здесь полный тупик.... Надеюсь хоть кто-нибудь обратит внимание на эту тему...
     
  4. Гость

    Или такой вопрос: Как на форму вывести картинку с капчей?
    Вот как она выглядит в ХТМЛ-е:
    Код (PHP):
    <td valign="middle">
    <a href="#" onclick="return kaptcha_reload();" title="Кликните чтобы обновить код"><img src="/code.php"
    alt="Securitycode" border="0" width="120" height="60" id="kaptcha"></a></td>
    Это надо еще один cppWebBrowser?
     
  5. Гость

    И так вот что я нашел по поводу заполнения SELECT:

    Код (Delphi):
            IDispatch *pDisp1=NULL; TVariant vIndex = 1;
    IHTMLElementCollection *pAll;

    TVariant vName1 = "prefix"; // ??? HTML ????
    if(SUCCEEDED(pAll->item(vName1, vIndex, &pDisp1)) && pDisp1)
    {
    IHTMLSelectElement *pInput = NULL;
    if(SUCCEEDED(pDisp1->QueryInterface(IID_IHTMLSelectElement,(LPVOID*)&pInput)) && pInput)
    {
    pInput->put_value(WideString("String"));
    pInput->Release();
    }

    pDisp1->Release();
    }
    это компилируется хорошо но при работе выдает ошибку..
     
Загрузка...

Поделиться этой страницей