G
Guest
В общем, пытаюсь написать что то похожее на программу для отправки смс. Использую эту страничку нашего провайдера:
На этой странце 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">
Пытался также заполнить остальные два поля однако выдает ошибку , что то вроде Query интерфейс не выполняется и т д...
Вопрос звучит так: что мне нужно поменять в моем коде чтоб можно было заполнить 1-е и 3-е поле ввода? Или может у кого нибудь есть исходник...
Буду очень благодарен за любую помощь.
Ссылка скрыта от гостей
.На этой странце 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">
Код:
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-е поле ввода? Или может у кого нибудь есть исходник...
Буду очень благодарен за любую помощь.