Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать(
Заранее спасибо!
12.08.10 17:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
А>Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать( А>Заранее спасибо!
Здравствуйте, Аноним, Вы писали:
А>Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать( А>Заранее спасибо!
Писали такую хрень с пол года назад
делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности.
только вот время не меряли
Dez>Писали такую хрень с пол года назад Dez>делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности. Dez>только вот время не меряли
парсинг в смысле стандартный DOM, никаких велосипедов
Re[3]: работа с Internet Explorer
От:
Аноним
Дата:
11.08.10 19:51
Оценка:
Здравствуйте, Dez, Вы писали:
Dez>>Писали такую хрень с пол года назад Dez>>делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности. Dez>>только вот время не меряли
Dez>парсинг в смысле стандартный DOM, никаких велосипедов
С IWebBrowser2 научился работать, а как работать с IHtmlDocument2.Найти объект(ссылку или кнопку) и нажать на неё для перехода?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Dez, Вы писали:
Dez>>>Писали такую хрень с пол года назад Dez>>>делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности. Dez>>>только вот время не меряли
Dez>>парсинг в смысле стандартный DOM, никаких велосипедов
А>С IWebBrowser2 научился работать, а как работать с IHtmlDocument2.Найти объект(ссылку или кнопку) и нажать на неё для перехода?
а зачем объект искать ?
просто CIDWBrowser говоришь кликнуть на тако-то элемент и все (как называются те или иные элементы можно смотреть разными прогами — какими именно не помню).
если нужно сперва разобраться что есть — то тут MSDN покурить нужно
у нас примерно такой код был
static std::vector<std::string> strClickLinks;
EXPORT void CALLBACK SomeFunction(
HWND hwnd, // handle to owner window
HINSTANCE hinst, // instance handle for the DLL
LPCSTR lpCmdLine, // string the DLL will parseint nCmdShow // show state
)
{
//::MessageBox(0,0,0,0);
std::string a;
a=lpCmdLine;
if (ParseParams(a))
{
return;
}
//::MessageBoxA(0,chFileName,"", MB_ICONINFORMATION);
USES_CONVERSION;
dwIncomingTime=GetTickCount();
if(iProcId) return;
CIDWBrowser myBrowser;
myBrowser.Show(iShowIe);
if (strlen(chURL))
{
myBrowser.Open(A2W(chURL));
for (size_t i=0; i<strClickLinks.size(); ++i)
{
int result = CIDWB_LOADING;
Sleep(2000);
for(int retry=0; retry<iMaxTime*2 && result == CIDWB_LOADING; ++retry)
{
result = myBrowser.Click(A2W(strClickLinks[i].c_str()));
//if (result == CIDWB_ERROR || result == CIDWB_OK) break;
Sleep(500);
}
if (result == CIDWB_ERROR) break;
}
Sleep(5000);
}
myBrowser.Quit();
return;
};