Delphi中国  
首页 | 电脑常识 | 业界动态 | Delphi相关 | 最新源码 | 网络文摘 | 常用工具 | 专题 | 会员中心
  当前位置:首页>Delphi相关>控件使用>文章内容

WebBrowser技巧大全
来源: 作者: 发布时间:2007-05-09  
在webbrowser中查找字符串并定位

procedure TForm1.WebFindText;
const
CLSID_WebBrowser: TGUID = '{ED016940-BD5B-11cf-BA4E-00C04FD70816}';
var
CmdTarget: IOleCommandTarget;
begin
try
WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
if CmdTarget <> nil then
try
CmdTarget.Exec(@CLSID_WebBrowser, 1, 0, EmptyParam, EmptyParam);
finally
CmdTarget._Release;
end;
except
end;
end;



===================================================================================
Twebbrowser里如何保存里面的网页内容?
WebBrowser1.ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_DODEFAULT, EmptyParam,
EmptyParam);
这几个参数不用说了吧
==============================================================
如何用程序复制webbrows的内容
来自:xwhjq, 时间:2002-12-10 19:36:00, ID:1500365
if WebBrowser1.Document <> nil then
begin
WebBrowser1.ExecWB(OLECMDID_selectall,OLECMDEXECOPT_DODEFAULT);
WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DODEFAULT);
end;
==============================================================
引入OleCtrls和Activex单元
IE.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT,a,b);
//webbrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
//webbrowser1.ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_PROMPTUSER);
//WebBrowser1.ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DODEFAULT);
//WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DODEFAULT);
//WebBrowser1.ExecWB(OLECMDID_ZOOM,OLECMDEXECOPT_DONTPROMPTUSER,pvaIn,pvaOut);
==================================================================================
来自:zw84611, 时间:2002-11-19 9:53:00, ID:1441206
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, OleCtrls, SHDocVw, Activex;

type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
///RichEdit1.Lines.SaveToFile('a.txt');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('c:\序 言.htm');
end;

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin

RichEdit1.PlainText := true;
webbrowser1.ExecWB(OLECMDID_SELECTALL,0);
webbrowser1.ExecWB(OLECMDID_COPY,0);
richedit1.PasteFromClipboard;
RichEdit1.Lines.SaveToFile('c:\ab.txt');

end;
//注意下面
initialization
OleInitialize(nil);

finalization
OleUninitialize;

end.
=====================================================================================
TWebBrowser编程简述
发表日期:2005-10-17 作者:[转贴] 出处:



1、初始化和终止化(Initialization & inalization)

  大家在执行TWebBrowser的某个方法以进行期望的操作,如ExecWB等的时候可能都碰到过“试图激活未注册的丢失目标”或“OLE对象未注册”等错误,或者并没有出错但是得不到希望的结果,比如不能将选中的网页内容复制到剪贴板等。以前用它编程的时候,我发现ExecWB有时侯起作用但有时侯又不行,在Delphi生成的缺省工程主窗口上加入TWebBrowser,运行时并不会出现“OLE对象未注册”的错误。同样是一个偶然的机会,我才知道OLE对象需要初始化和终止化(懂得的东东实在太少了)。
  我用我的前一篇文章《Delphi程序窗口动画&正常排列平铺的解决》所说的方法编程,运行时出了上面所说的错误,我便猜想应该有OleInitialize之类的语句,于是,找到并加上了下面几句话,终于搞定!究其原因,我想大概是由于TWebBrowser是一个嵌入的OLE对象而不算是用Delphi编写的VCL吧。

  initialization
   OleInitialize(nil);
  finalization
   try
    OleUninitialize;
   except
   end;

  这几句话放在主窗口所有语句之后,“end.”之前。

--------------------------------------------------------------------------------------------------------

2、EmptyParam

  在Delphi 5中TWebBrowser的Navigate方法被多次重载:

  procedure Navigate(const URL: WideString); overload;
  procedure Navigate(const URL: WideString; var Flags: OleVariant); overload;
  procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName:     OleVariant); overload;
  procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName:     OleVariant; var PostData: OleVariant); overload;
  procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName:     OleVariant; var PostData: OleVariant; var Headers: OleVariant); overload;
(阅读次数:

共4页: 上一页 1 [2] [3] [4] 下一页
上一篇:WebBrowser组件和MSHTML 在Delphi中的使用   下一篇:Delphi好书推荐
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·VCL组件的属性和方法详解
·EhLib使用说明
·Delphi7控件包详解
·DBGridEH应用实例
·DevExpress控件介绍
·Delphi中定制DBGrid控件
·DBGrid、DBGrideh专题总结
·分享一下ExpressQuantumGrid4的c
·Fast Reports V3.15 输出CJKPDF
·Delphi中制作特效菜单
·WebBrowser组件和MSHTML 在Delph
·Delphi编程中在状态栏动态添加进
  相关文章
·WebBrowser组件和MSHTML 在Delph
·发送邮件代码
·Delphi7控件包详解
·DevExpress控件介绍
·DBGrid的网格长度怎样根据实际字
·全屏显示
·无标题窗体拖动
·RichEdit中实现url
·DELPHI控件制作方法
·CxGrid 的加强右键菜单实现方法
·FastReport 3.23.12 创建"人民币
·文件/流的加密解密方法(For Delp

Delphi中国
苏ICP备07008953