CHtmlView - POST
От: sfs1981  
Дата: 05.02.09 12:38
Оценка:
Конкретная ситуация: нужно нажать кнопку на странице http://s1.travian.com.ua предварительно заполнив логин и пароль.
Вот так заполняются поля:

Navigate2(_T("http://s1.travian.com.ua/dorf1.php"), 0,0,_T("Content-Type: application/x-www-form-urlencoded"),_T("login=Prohv&w=rupsw&e2fd3e1=Prohv&ea6dbdd=rupsw&ea6dbdd=rupsw"),sizeof(_T("login=Prohv&w=rupsw&e2fd3e1=Prohvt&ea6dbdd=rupsw&ea6dbdd=rupsw")));



Поля заполняются успешно, но вход по кнопке не осуществляется. Далее пытаюсь сделать так:


bool CTr4View::PushElementById(const char* id)
{
IHTMLDocument2 *document = NULL;
IDispatch *dispatcher = NULL;
IHTMLElementCollection *all = NULL;
IHTMLElement *element = NULL;

VARIANT v_id,
v_zero;

USES_CONVERSION;

dispatcher = GetHtmlDocument();
if(!dispatcher)
return false;

dispatcher->QueryInterface(IID_IHTMLDocument2, (void**)&document);
dispatcher->Release();
if(!document)
return false;

document->get_all(&all);
document->Release();
if(!all)
return false;

VariantInit(&v_id);
v_id.vt = VT_BSTR;
v_id.bstrVal = A2W(id);
long h;
all->get_length(&h);

VariantInit(&v_zero);
v_zero.vt = VT_I4;
v_zero.intVal = 0;

all->item(v_id, v_zero, &dispatcher);

all->Release();
if(!dispatcher)
return false;
//all->item(0,1,0);
dispatcher->QueryInterface(IID_IHTMLElement, (void**)&element);
element->Release();
if(!element)
return false;
element->click();
element->Release();
return true;
}



И опять же — никакой реакции. Помогите, пожалуйста — бьюсь неделю, мозг уже кипит ((

P.S. При установке v_id на VI_4 и цикличном переборе всех эелемнтов, с принудительным "клик" по каждому — эффект тот же самый. ((
Re: CHtmlView - POST
От: Hawk Россия  
Дата: 06.02.09 12:39
Оценка:
Здравствуйте, sfs1981, Вы писали:

S>Помогите, пожалуйста — бьюсь неделю, мозг уже кипит ((


А SendMessage(WM_KEYDOWN, ...), SendMessage(WM_KEYUP, ...), SendMessage(WM_CHAR, ...) и т.п. не работают?
Re[2]: CHtmlView - POST
От: sfs1981  
Дата: 06.02.09 13:15
Оценка:
Здравствуйте, Hawk, Вы писали:

H>Здравствуйте, sfs1981, Вы писали:


S>>Помогите, пожалуйста — бьюсь неделю, мозг уже кипит ((


H>А SendMessage(WM_KEYDOWN, ...), SendMessage(WM_KEYUP, ...), SendMessage(WM_CHAR, ...) и т.п. не работают?


Некрасиво. Вдруг юзер мышкой начнет двигать и клацать? И фокус с контрола сместит....
В любом случае — проблема решена. Все оаказалось просто — функциию нужно было перенести в OndocumentComplete из OnNavigateComplete.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.