Форум программистов, компьютерный форум CyberForum.ru

C++: COM, OLE, ActiveX

Войти
Регистрация
Восстановить пароль
 
UAGREED
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 13
#1

Клик по Internet Explorer_Server в WebBrowser - C++ COM

02.08.2016, 21:05. Просмотров 505. Ответов 3

Мне надо нажать на любой элемент (картинка к примеру), который находится в WebBrowser. Сначала думал что мне надо делать клик по флеш-объекту, поэтому написал такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CppWebBrowser1->Navigate(L"http://ina.newart.ru/med/risovalka-1.swf");
// Вставил эту строку сюда для наглядности, а обычно она находится в другой функции
TPoint  Pt ;
HWND Wnd ;
 
  Pt.x = CppWebBrowser1->Left + 20;
  Pt.y = CppWebBrowser1->Top + 20;
  Pt = ClientToScreen(Pt);
 
 HWND Handle = Form1->Handle;
 
                     HWND Handle2 = FindWindowEx(Handle, NULL, L"Shell Embedding", NULL);
                     if(!Handle2) ShowMessage("Не нашло главное окно");
                     HWND Handle3 = FindWindowEx(Handle2, NULL, L"Shell DocObject View", NULL);
                     HWND Handle4 = FindWindowEx(Handle3, NULL, L"Internet Explorer_Server", NULL);
                     HWND Handle5 = FindWindowEx(Handle4, NULL, L"MacromediaFlashPlayerActiveX", NULL);
 
if(!Handle5) ShowMessage("Не нашло");
 
SendMessage(Handle5,WM_MOUSEMOVE,NULL,MAKELONG(Pt.x,Pt.y));
SendMessage(Handle5,WM_LBUTTONUP,MK_LBUTTON,MAKELONG(Pt.x,Pt.y));
 
SendMessage(Handle5,WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(Pt.x,Pt.y));
Он работает и замечательно тычет на флеше на координаты. Но надо переделывать на тык по сайту. Проверил WinDowse и WinSpy. Надо тыкать по Internet Explorer_Server. Ну я по такой же логике делаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CppWebBrowser1->Navigate(L"http://uagreed.zzz.com.ua/MAINTEST/1.html");
 // Вставил эту строку сюда для наглядности, а обычно она находится в другой функции
TPoint  Pt ;
HWND Wnd ;
 
  Pt.x = CppWebBrowser1->Left + 20;
  Pt.y = CppWebBrowser1->Top + 20;
  Pt = ClientToScreen(Pt);
 
 HWND Handle = Form1->Handle;
 
                     HWND Handle2 = FindWindowEx(Handle, NULL, L"Shell Embedding", NULL);
                     if(!Handle2) ShowMessage("Не нашло главное окно");
                     HWND Handle3 = FindWindowEx(Handle2, NULL, L"Shell DocObject View", NULL);
                     HWND Handle4 = FindWindowEx(Handle3, NULL, L"Internet Explorer_Server", NULL);
                    // HWND Handle5 = FindWindowEx(Handle4, NULL, L"MacromediaFlashPlayerActiveX", NULL);
 
if(!Handle4) ShowMessage("Не нашло");
 
SendMessage(Handle4,WM_MOUSEMOVE,NULL,MAKELONG(Pt.x,Pt.y));
SendMessage(Handle4,WM_LBUTTONUP,MK_LBUTTON,MAKELONG(Pt.x,Pt.y));
 
SendMessage(Handle4,WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(Pt.x,Pt.y));
Просто сделал картинку ссылкой чтоб было видно что кликнуло по ней
HTML5
1
2
<a href="lorem.html"><img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSgatWkrshJs5q2zO3K_A6tIGXkI5NP3uwrg8v9gMQB0T3yn2EU7W4AShA" 
  width="500" height="500" alt="lorem"></a>
Но теперь ничего не происходит. Почему так? Как кликнуть, при том условии что окно может быть неактивным?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2016, 21:05     Клик по Internet Explorer_Server в WebBrowser
Посмотрите здесь:

Компонент webbrowser и клик по видео Delphi
Не находит Internet Explorer_Server Visual Basic .NET
C++ COM Internet Explorer путь сохранения html файла
Работа с классом internet explorer_server Delphi WinAPI
C# Webbrowser клик по гиперссылке
Delphi WinAPI Сделать клик и ввести текст в браузере Internet Explorer
Клик по кнопке (WebBrowser) Delphi
Webbrowser осуществить клик C# .NET 4.x
Клик по кнопке в webbrowser Delphi
C# Клик по ссылке webBrowser
BHO для Internet Explorer C++ COM

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3021 / 1823 / 189
Регистрация: 13.01.2012
Сообщений: 6,910
02.08.2016, 23:55     Клик по Internet Explorer_Server в WebBrowser #2
может название заголовка окна не то?
UAGREED
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 13
03.08.2016, 19:48  [ТС]     Клик по Internet Explorer_Server в WebBrowser #3
Я ж сказал что проверил двумя программами что находится в том месте, куда надо кликнуть.
Цитата Сообщение от UAGREED Посмотреть сообщение
Проверил WinDowse и WinSpy.
vxg
Модератор
3021 / 1823 / 189
Регистрация: 13.01.2012
Сообщений: 6,910
04.08.2016, 08:19     Клик по Internet Explorer_Server в WebBrowser #4
UAGREED, тогда приходим к выводу что элемент ловит клик не через сообщения а каким то иным способом например опрашивая статус кнопок
Yandex
Объявления
04.08.2016, 08:19     Клик по Internet Explorer_Server в WebBrowser
Ответ Создать тему
Опции темы

Текущее время: 04:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru