Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Клик по объекту в WebBrowser е   Найти похожие ветки 

 
Сережа550 ©   (2004-04-19 13:01) [0]

Уважаемые знатоки, помогите, пожалуйста разобраться с такой ситуацией:
Есть WebBrowser. В событии OnDocumentComplete идет поиск объектов загруженной страницы. Привожу код:

procedure TBrowser.WebBrowserDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
I:Integer;
iDoc :IHtmlDocument2;
iDisp: IDispatch;
iElement:IHTMLElement;
iObjectElement:HTMLObjectElement;
begin
iDoc:=(pDisp as IWebBrowser2).Document as IHtmlDocument2;
for I := 1 to iDoc.All.Length do
   begin
     iDisp:=iDoc.All.Item(Pred(I),0);
     iDisp.QueryInterface(IHTMLElement, iElement);
     if (iElement.TagName = "OBJECT") then
       begin
         iElement.QueryInterface(iHtmlObjectElement,iObjectElement);
         If iObjectElement.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" then //В данном случае ищутся Flash-баннеры
           begin
             {!!!!!!}
           end;
       end;
   end;
end;


Возможно ли у iHTMLObjectElement"а взять его дескриптор и программно кликнуть по объекту?
Что-то вроде:
var
CurObj: THandle;
iObjElement:iHTMLElement;
begin
CurObj:=iObjElement.Handle;
PostMessage(CurObj, WM_LBUTTONDOWN, 0, MAKELPARAM(0,0));
PostMessage(CurObj, WM_LBUTTONUP, 0, MAKELPARAM(0,0));
end;


Естественно, вышеприведенный код не работает, потому что хендла, вроде, у объекта нет...

Вообщем, возможно ли каким-то образом кликнуть левой кнопкой мышки по найденному объекту (желательно с заданными координатами относительно этого объекта)?


 
nikkie ©   (2004-04-19 13:25) [1]

(... as IHTMLElement).click;


 
Сережа550 ©   (2004-04-19 14:08) [2]

Пробовал, процедура Click почему-то не работает на flash-объектах. Я так понял, она работает только на кнопках...


 
nikkie ©   (2004-04-19 19:35) [3]

вообще-то про IHTMLElement::click написано
Simulates a click by causing the onclick event to fire.
то есть если прицеплен скрипт в onclick, то он сработает.

мне кажется флеши лучше перебрать просто как детей эксплореровского окна с помощью EnumWindows, проверяя их WndClass. только потом аккуратно проверить на разных версиях IE, мне помнится, что окошки IE имеют немного отличную иерархию на разных версиях.


 
Сережа550 ©   (2004-04-20 10:53) [4]

Спасибо. Мысль хорошая... Перебрать окна и послать им комманды еще можно, но как через EnumChildWindows получить хендлы дочерних окон и положить их в массив? Я в этом не особо разбираюсь... Сейчас отдельным вопросом спрошу насчет этого.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1084778985
mrcat
2004-05-17 11:29
2004.06.06
Рой Джонс повержен !?


1-1085497108
zdn
2004-05-25 18:58
2004.06.06
Application


9-1076423031
Aika
2004-02-10 17:23
2004.06.06
Искусственный интеллект - Тетрис !


3-1084840121
Lego82
2004-05-18 04:28
2004.06.06
Как перенести таблицу StringGrid в БД Paradox


1-1085628648
Настенька
2004-05-27 07:30
2004.06.06
Stringgrid