0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
1

Программное нажатие web кнопок

22.02.2009, 05:31. Показов 2231. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Имеется web-страничка с кучей кнопок. Необходимо их программно понажимать. Мне известны координаты расположения кнопок, курсор я навожу с помощью SetCursorPos, а вот как программно нажать левую кнопку мыши по этим кнопкам?
Ещё нужно узнать цвет пиксела под курсором, пытался делать через GetPixel, но не получилось :'(. В качестве параметра эта функция запрашивает hdc, а вот как его узнать для веб-странички - я не знаю.
Помогите плиз, только не общими словами, а кодом) Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2009, 05:31
Ответы с готовыми решениями:

Одновременное нажатие на несколько кнопок при открытом MessageBox
как сделать так, чтобы при нажатии кнопки button открывался MessageBox, и одновременно можно было...

Программное нажатие кнопок
Здравствуйте, уважаемые форумчане! Пришла в голову мысль сделать программу, которая могла бы...

Программное нажатие кнопок
Доброе время суток. У меня проблема. Необходимо чтоб программа в некоторых случаях сама нажимала...

Программное нажатие кнопок клавиатуры
Здравствуйте, уважаемые форумчане. Честно говоря, об ассемблере имею только общие знания...

5
Эксперт С++
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
23.02.2009, 06:49 2
dopton,hdc узнается по hwnd с помощью GetDC
мышка :
Код
mouse_event(MOUSEEVENTF_LEFTDOWN, KX, KY, 0, 0);
 mouse_event(MOUSEEVENTF_LEFTUP, KX, KY, 0, 0);
подробности гуглить.
0
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
24.02.2009, 15:29  [ТС] 3
С мышкой разобрался, вот с getpixel не лады:

сама функция COLORREF GetPixel(int x, int y) const;

Пишу:
C++
1
2
3
4
5
6
    CDC* cdc;
    COLORREF color;
    CWnd* cwnd;
    cwnd = GetForegroundWindow();   //мышка уже над веб страницей
    cdc = cwnd->GetDC();
    color = cdc->GetPixel(10,10);
а вот как получить это самое RGB из color?
0
Эксперт С++
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
24.02.2009, 15:34 4
Разложить картинку на RGB в 3 массива
1
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
24.02.2009, 16:14  [ТС] 5
Спасибо за ссылочку! Сделал так:
C++
1
2
3
4
5
6
7
8
    HDC hdc;
    HWND hwnd;
    hwnd =::GetForegroundWindow();
    hdc = ::GetDC(hwnd);
    int r = GetRValue(GetPixel(hdc,10,10));
    int g = GetGValue(GetPixel(hdc,10,10));
    int b = GetBValue(GetPixel(hdc,10,10));
           ::ReleaseDC (hwnd, hdc);
0
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
24.02.2009, 16:50 6
если работать в IE то можно через DOM кнопки нажимать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void __fastcall TForm1::ClickButtonByName(String ButtonName)
{
    //TODO: Add your source code here
    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(ButtonName)), TVariant(0), &pDisp);
 
                if( pDisp )
                {
                    TComInterface<IHTMLElement> pElement;
                    pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
 
                    if( pElement )
                    {
                        pElement->click();
                    }
                }
            }
        }
    }
}
это правда от билдера код, но в VC не составит труда переделать
1
24.02.2009, 16:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2009, 16:50
Помогаю со студенческими работами здесь

Программное нажатие кнопок другой программы
Извините за измусоленную тему, но не получается сделать: нужно нажать кнопку в окне другой...

Программное нажатие кнопок в диалоговых окнах Webbrowser
Доброго времени суток! При переходе по ссылке в Webbrowser, сначала появляется окошко и при...

Последовательное программное нажатие двух кнопок при нажатии на третью
Здравствуйте, подскажите пожалуйста, какой код позволит программно нажать последовательно две...

Автозаполнение web полей и нажатие кнопок
Здравствуйте. У меня такая проблема: я хочу чтобы при нажатии на кнопку, в компонент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru