Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法


本文整理自网络,侵删。

 

关于改造WebBrowser控件的一些技巧,大家可以参考MSDN或者蒋晟写的一个东西,里面有讲的很详细的,今天我就说一下这个alter对话框的修改和过滤的方法:

很简单,只要咱们继承IDocHostShowUI这个接口,实现里面的ShowMessage方法就行了。

废话不多说,代码在这里:

unit Unit2;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;  TForm2 = class(TForm)    WebBrowser1: TWebBrowser;    procedure FormCreate(Sender: TObject);  private     { Private declarations }   public     { Public declarations }   end;var   Form2: TForm2;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),'不得闲测试',65);  Result := S_OK;end;procedure TForm2.FormCreate(Sender: TObject);begin   self.WebBrowser1.Navigate(Application.ExeName + '\..\test.htm');end;end.

相关阅读 >>

Delphi 多核机器上编程实现将指定进程pid放到指定cpu上运行

Delphi 组件篇 之 tbevel组件

解放程序员!Delphi带来app开发革命

Delphi 利用createservice写与桌面交互的win32服务

Delphi 利用hook技术实现键盘监控

winapi 字符及字符串函数(2): charlowerbuff - 把缓冲区中指定数目的字符转小写

Delphi+mysql:tadoquery使用插入中文乱码解决方法

Delphi idhttp中get与post的区别

Delphi 给 tcombobox 添加图标

Delphi 字符串处理单元

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...