HRESULT hr;
LPDISPATCH pDispatch = GetHtmlDocument();
if(pDispatch == NULL )
return false;
IHTMLDocument* pHtmlDoc;
hr = pDispatch->QueryInterface(__uuidof( IHTMLDocument ), (void**)&pHtmlDoc );
if (SUCCEEDED(hr))
{
IDispatch *dsp;
HRESULT hr = pHtmlDoc->get_Script(&dsp);
pHtmlDoc->AddRef();
if(SUCCEEDED(hr))
{
OLECHAR* szMember = L"text";
DISPID dispid;
HRESULT hr = dsp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if (SUCCEEDED(hr))
{
Тут надо записать данные, но как?
}
}
pHtmlDoc->Release();
pDispatch->Release();
работа с CHtmlView
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
Цитата:
Originally posted by AndreySar
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
в зависимости от выбранного сайта конкретные решения проблемы могут быть очень разными. Так у этого поля может быть имя ( присвоенное ему в теге HTML ) можно попробовать через это имя присвоить, но этого имени может и не быть.
Цитата:
Originally posted by PitxBull
в зависимости от выбранного сайта конкретные решения проблемы могут быть очень разными. Так у этого поля может быть имя ( присвоенное ему в теге HTML ) можно попробовать через это имя присвоить, но этого имени может и не быть.
в зависимости от выбранного сайта конкретные решения проблемы могут быть очень разными. Так у этого поля может быть имя ( присвоенное ему в теге HTML ) можно попробовать через это имя присвоить, но этого имени может и не быть.
Да, я знаю что у каждого элемента может быть, а может и не быть имени. Но мне это нужно для конкретного сайта и имя элемента у него есть. Вся сложность как к ниму обратиться и записать данные.
Пока дошел до этого:
Код:
Цитата:
Originally posted by AndreySar
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
Следующий код заносит в поле для поиска на страничке Yandex текст text:
Код:
HRESULT hr;
LPDISPATCH pDispatch = GetHtmlDocument();
if(pDispatch == NULL )
return false;
pDispatch->AddRef();
IHTMLDocument3* pHtmlDoc;
hr = pDispatch->QueryInterface(__uuidof( IHTMLDocument3 ), (void**)&pHtmlDoc );
if (SUCCEEDED(hr))
{
CString str = "text";
BSTR p = str.AllocSysString();
IHTMLElement *el;
pHtmlDoc->getElementById(p, &el);
if (el != NULL)
el->put_innerText(p);
el->Release();
}
pHtmlDoc->Release();
pDispatch->Release();
LPDISPATCH pDispatch = GetHtmlDocument();
if(pDispatch == NULL )
return false;
pDispatch->AddRef();
IHTMLDocument3* pHtmlDoc;
hr = pDispatch->QueryInterface(__uuidof( IHTMLDocument3 ), (void**)&pHtmlDoc );
if (SUCCEEDED(hr))
{
CString str = "text";
BSTR p = str.AllocSysString();
IHTMLElement *el;
pHtmlDoc->getElementById(p, &el);
if (el != NULL)
el->put_innerText(p);
el->Release();
}
pHtmlDoc->Release();
pDispatch->Release();