Delphi中WebBrowser拦截网页Alert对话框消息(转)

Posted 程序员之梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中WebBrowser拦截网页Alert对话框消息(转)相关的知识,希望对你有一定的参考价值。

interface 
   
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  Dialogs, OleCtrls, SHDocVw, ActiveX;  
   
type 
  IDocHostShowUI = interface(IUnknown)  
    [{c4d244b0-d43e-11cf-893b-00aa00bdce1a}]  
    function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;  
    function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;  
  end;  
   
  TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI)  
  protected 
    function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;  
    function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;  
  end;  
   
   
type 
  TForm1 = class(TForm)  
    WebBrowser1: TWebBrowser;  
    procedure FormCreate(Sender: TObject);  
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end;  
   
var 
  Form1: TForm1;  
   
implementation 
   
{$R *.dfm} 
   
{ TWebBrowser } 
   
function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand,  
  dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;  
begin 
  Result := S_FALSE;  
end;  
   
function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText,  
  lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR;  
  dwHelpContext: Integer; var plResult: LRESULT): HRESULT;  
begin 
  //plResult := MessageBoxW(hwnd,PWChar(lpstrText),Title,64);//这里屏蔽了alert  
  Result := S_OK;  
end;  
   
procedure TForm1.FormCreate(Sender: TObject);  
begin 
  WebBrowser1.Navigate(E:/alert.htm);  
end;  
   
end.

方法是实现了IDocHostShowUI接口,重写了弹出消息的方法。

以上是关于Delphi中WebBrowser拦截网页Alert对话框消息(转)的主要内容,如果未能解决你的问题,请参考以下文章

delphi中WebBrowser1打开网页

delphi 怎么判断webbrowser打开网页成功?

delphi WebBrowser控件上网页验证码图片识别教程

delphi webbrowser,如何调整webbrowser里面打开网页的大小,或者使打开的内容适应webbrowser控件的大小。

DELPHI如何实现打开某一个网页没webbrowser组件

怎样用delphi 获取网页html源代码(网页需登录)