-
Столкнулся со следующей ситуацией - запоняю через TWebBrowser форму, нажимаю submit - вобще всё как положено, в ответ страница мне выводит диалоговое окно, мол "всё ок", и предлагает нажать единственную кнопку.
Возник вопрос: могу ли я как то отследить появление этого окна, и так же - программно нажать эту кнопку?
ps. Делаю всё для себя, никаких брутфорсов и т.п.
-
проще js запретить.
-
хм... спорный момент, может мне и помешать. хорошо, а как его запретить?
-
> [2] ZIlog (15.12.08 11:16)
моежт лучшее вообще TWebBrowser не трогать, а формировать ответ вручную.
-
Eraser, нет, формировать вручную ненадо. Форма большя, полей куча - мне надо заполнить только небольшую часть. К остальным я отношения не имею, и предполагаю, что их кол-во может измениться - словом, лишний гемор ни к чему.
Предыдущй вопрос остается актуальным.
-
решение, может кому пригодится:
procedure TFMain.WMActivate(var Msg: TWMActivate); begin TrapWM_Activate(Msg); inherited; end;
procedure TFMain.TrapWM_Activate(var Msg: TWMActivate); var L:Integer; wnd:Integer; WinClass,WinCaption:string; ShouldShow:boolean; ShouldClose:boolean; begin if Msg.Active = 0 then begin wnd := Msg.ActiveWindow; SetLength(WinClass,80); SetLength(WinClass,GetClassName(wnd, PChar(WinClass), Length(WinClass))); L:=GetWindowTextLength(wnd); SetLength(WinCaption,L+1); GetWindowText(Wnd,PChar(WinCaption),L+1); SetLength(WinCaption,L); ShouldShow:=(WinCaption<>''); if ShouldShow then begin ShouldClose:=(WinCaption='Îøèáêà ñöåíàðèÿ Windows Internet Explorer') and (WinClass='Internet Explorer_TridentDlgFrame'); ShouldClose:=ShouldClose or ((WinCaption='Windows Internet Explorer Script Error') and (WinClass='Internet Explorer_TridentDlgFrame')); ShouldClose:=ShouldClose or ((WinCaption='Windows Internet Explorer') and (WinClass='#32770')); if ShouldClose then SendMessage(wnd, WM_CLOSE, 0, 0); end; end; end;
|