-
Приветствую всех, при создании Оле эксплорера возникает проблема, в некоторых случаях когда показывается на странице алерт или вопрос, например на ждаваскрипте, то с браузером ничего нельзя сделать, уже .navigate('') не получится, вот думаю можно его както перезагрузить или отловить алерты.
Посмотрел как делают отлов в EMbeddedWB - там делают TForm(WebBrowser1).WindowProc := MyForm.MyFormWndProc; Хотя там у них не Ole а что то еще.
Но у меня почему-то не ловится этой функцией ничего, хотя если я ставлю вместо WebBrowser1 например MyForm то все отлично. вот часть кода
WebBrowser1 := CreateOleObject('InternetExplorer.Application')as IWebBrowser2; FOldWindowProc := TForm(WebBrowser1).WindowProc; TForm(WebBrowser1).WindowProc := MyFormWndProc;
далее
procedure MyForm1.MyFormWndProc(var Msg: TMessage); var begin // Здесь ставлю брэйкпоинт, ничего не пашет // Если я сделаю выше // TForm(MyForm1).WindowProc := MyFormWndProc; // то нормально вызывается метод по всем сообщениям // end;
Да, еще пробовал добавить после создания и ловить сообщения MyForm1 Windows.SetParent(WebBrowser1.HWND,TWinControl(Self).Handle); но вроде все равно не ловятся сообщения когда всплывает и активизируется джаваскрипт (WM_Activate)
-
> TForm(WebBrowser1).
что это за бред? Это же Ole Object, какая TForm?
-
-
|