Главная страница
    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.45 MB
Время: 0.035 c
1-1085244987
Mim1
2004-05-22 20:56
2004.06.06
можно ли подключить bpl из delphi 7 в cpp builder


14-1084979824
Nous Mellon
2004-05-19 19:17
2004.06.06
Регистрация


1-1085585341
_mandrake_
2004-05-26 19:29
2004.06.06
Как прикрутить ProgressBar к копированию файла?


14-1085295921
VolanD2002
2004-05-23 11:05
2004.06.06
"Игра" vs "Другие"


1-1085422437
Memo
2004-05-24 22:13
2004.06.06
MapInfo & Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский