Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法(通过COM来改造)

刚有一段时间没做博客了,今天刚好有人问了这个问题,而自己以前也弄过,于是这里有了一篇新的博文。

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

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

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

DelphiCode:

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.

http://blog.csdn.net/suiyunonghen/article/details/3959322

时间: 2024-10-10 05:47:27

Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法(通过COM来改造)的相关文章

JS获取网页中HTML元素的几种方法分析

getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getElementsByTagName ###adv### 后两个是得到集合,byid只是得到单个对象 getElementById 的用法 举个例子: <a id="link1" name="link1" href=http://homepage.yesky.com>

网页中需要用的一些原型方法

$.fn.extend({ propAttr: $.fn.prop || $.fn.attr, _oldFocus: $.fn.focus,//为避免与jQuery ui冲突导致死循环,这里不要取名为'_focus' //设置元素焦点(delay:延迟时间) focus: function( delay, fn ) { return typeof delay === "number" ? this.each(function() { var elem = this; setTimeou

如何在网页中插入音频,视频(复制粘贴借鉴的)

三种 分别用<bgsound />.<embed>和<video>标签,当用<embed><video>插入背景音乐时可以设置宽度和高度为0,隐藏播放器,在这里重点说前两者. ■ <bgsound>:<bgsound> 是用来插入背景音乐,但只适用于 ie,其参数设定不多.如下<bgsound src="your.mid" autostart=true loop=infinite>src=&

减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

原文:减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术) 在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”,那么,这一篇博文将讲解  “ 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片”. 一.为何选择将图片转成二进制并生成Base64编码,可以在网页中通过url查看

在网页中添加背景音乐

有两种添加背景音乐的方式分别用<bgsound>和<embed></embed>标签,当用<embed>插入背景音乐时可以设置宽度和高度为0,隐藏播放器.二者的参数如下: ■ <bgsound>: <bgsound> 是用来插入背景音乐,但只适用于 IE,其参数设定不多.如下 <bgsound src="your.mid"autostart=true loop=infinite> src="y

Emoji表情在网页中显示

最近遇到一个项目,客户手机上发送的表情要在电脑网页中显示,没有找到简便方法,于是有了以下方案. 由于Emoji表情传到后台是“口”,怎么找出接收数据中的表情是关键,各种搜索后,我用下面的正则表达式匹配到所有的Emoji表情,然后进行替换成图片. 匹配表情的正则表达式 Regex reg = new Regex("[\uD800-\uDBFF][\uDC00-\uDFFF]|[\u2600-\u27ff]");   参考资料 http://www.emoji-cheat-sheet.co

字体在网页中画ICON图标

用字体在网页中画ICON图标有三种小技巧: 1.用CSS Sprite在网页中画小图标 实现方法: 首先将小图片整合到一张大的图片上 然后根据具体图标在大图上的位置,给背景定位.background-position:xpos ypos;相对位置为左上角的 0 0,向右向下取负值 实例部分的html代码及js代码(通过js来改变背景图的位置) 1 <ul class="sprite"> 2 <li> 3 <s class="s-icon"

在网页中插入背景音乐代码(html)hK3V

有两种分别用和标签当用插入背景音乐时可以设置宽度和高度为,隐藏播放器.二者的参数如下:■: 是用来插入背景音乐,但只适用于,其参数设定不多.如下 设定档案及路径,可以是相对或绝对.是否在音乐档下载完之后就自动播放.是,否内定.是否自动反复播放.表示重复两次,表示重复多次.■: 是用来插入各种多媒体,式可以是...等等,及新版的都支持.其参数设定较多.如下下 设定档案及路径,可以是相对或绝对.是否在音乐档下载完之后就自动播放.是,否内定.是否自动反复播放.表示重复两次,是,否.是否完全隐藏控制画面

在网页中插入背景音乐代码(html)

有两种 分别用<bgsound>和<embed></embed>标签,当用<embed>插入背景音乐时可以设置宽度和高度为0,隐藏播放器. 二者的参数如下: ■ <bgsound>: <bgsound> 是用来插入背景音乐,但只适用于 IE,其参数设定不多.如下 <bgsound src="your.mid"autostart=true loop=infinite> src="your.mid