работа с Internet Explorer
От: Аноним  
Дата: 11.08.10 16:58
Оценка:
Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать(
Заранее спасибо!

12.08.10 17:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: работа с Internet Explorer
От: hizis  
Дата: 11.08.10 17:37
Оценка:
А>Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать(
А>Заранее спасибо!


http://www.autoitscript.com/autoit3/downloads.shtml — и будет тебе счастье.

autoit3 — штука, которая на позволяет писать скрипты на языке подобном VB,
которые имитируют действия пользователя и не только.

Можно ещё попробовать через ole automation
Re[2]: работа с Internet Explorer
От: Abyx Россия  
Дата: 11.08.10 18:18
Оценка:
H>http://www.autoitscript.com/autoit3/downloads.shtml — и будет тебе счастье.

autoit не поможет, в IE нет контролов которыми можно управлять через ControlClick и т.п.

надо через COM, например использовать WSH
In Zen We Trust
Re: работа с Internet Explorer
От: Dez  
Дата: 11.08.10 18:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Доброе время суток.Возникла такая задача, надо сделать программу которая откроет браузер,откроет определенную страницу, пройдет по определенному маршруту по ссылкам и кнопкам страницы, запоминая сколько по времени выполнялось каждое действие и после исполнения закроет браузер.Помогите с чего начать и куда смотреть, до этого на c++ писал только маленькие консольные приложения, поэтому даже не знаю с чего начать(

А>Заранее спасибо!

Писали такую хрень с пол года назад
делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности.
только вот время не меряли
Re[2]: работа с Internet Explorer
От: Dez  
Дата: 11.08.10 18:49
Оценка:
Dez>Писали такую хрень с пол года назад
Dez>делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности.
Dez>только вот время не меряли

парсинг в смысле стандартный DOM, никаких велосипедов
Re[3]: работа с Internet Explorer
От: Аноним  
Дата: 11.08.10 19:51
Оценка:
Здравствуйте, Dez, Вы писали:

Dez>>Писали такую хрень с пол года назад

Dez>>делали через BHO + парсинг документа, на вход библиотеке передавали набор идентификаторов кнопок и урлов куда клацать и в какой последовательности.
Dez>>только вот время не меряли

Dez>парсинг в смысле стандартный DOM, никаких велосипедов


С IWebBrowser2 научился работать, а как работать с IHtmlDocument2.Найти объект(ссылку или кнопку) и нажать на неё для перехода?
Re[4]: работа с Internet Explorer
От: Dez  
Дата: 11.08.10 20:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 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 parse
                              int 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;
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.