我用WebBrowser1.Navigate(location)打开带有form的窗口后,自动填写表单,然后自动提交,但是提交后的页面会自动弹出一个"提交成功"的警告,不点击这个警告就无法获取窗口上的具体信息,有没有办法使那个警告窗口不再弹出来呢?求助...

解决方案 »

  1.   

    用消息编程来实现,它的标题一般都是Microsoft Internet Explorer,找到其句柄再关闭
    procedure TfrmAdKiller.tmrFirTimer(Sender: TObject);
    var
      wHandle: THandle;
    begin
      {那些弹出窗口类名一般为#32770}
      wHandle := FindWindow('#32770', 'Microsoft Internet Explorer');
      if wHandle <> 0 then PostMessage(wHandle, WM_CLOSE, 0, 0);
      ...
    end;
      

  2.   

    樓上提供了一種方法, 更好的方法, 參考<<delphi 深度探索>>II
      

  3.   

    不是像sina上的那种弹出的广告窗口,就是一般的javascript弹出的警告窗口,怎样才能禁止这个警告窗口弹出呢?
      

  4.   

    我的代码就是对那些Alert('提交成功');写的,你试下有没有用
      

  5.   

    我试了一下,好像并不能找到 Alert窗口啊...
    procedure TfrmConsole.WebBrowser1StatusTextChange(Sender: TObject;
      const Text: WideString);
    var
      wHandle: THandle;
    begin
      lblStatus.Caption := location + ':' + Text;
      wHandle := FindWindow('#32770', 'Microsoft Internet Explorer');
      if wHandle <> 0 then
        PostMessage(wHandle, WM_CLOSE, 0, 0);
    end;
      

  6.   

    它的Change只是一瞬间就过去;你写在一个Timer中,设它Interval小一些让它不停的找,
    wHandle := FindWindow('#32770', 'Microsoft Internet Explorer');不行的话就
    wHandle := FindWindow(nil, 'Microsoft Internet Explorer');我用Button测试就能关掉
      

  7.   

    搞定了,十分感谢...
    顺便问一下,Interval小到多少比较合适呢?