Delphi中WebBrowser自动填表模板

Delphi中WebBrowser自动填表模板

分类:IE & WebBrowser 2009-10-21 14:19 997人阅读评论(2)收藏举报

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;

type

TMainFrm = class(TForm)

btnTest: TButton;

edURL: TEdit;

Label1: TLabel;

procedure btnTestClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainFrm: TMainFrm;

implementation

{$R *.dfm}

procedure FillIEForm(aURL:string);

procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection);

var

k:integer;

vk:oleVariant;

Dispatch: IDispatch;

HTMLInputElement:IHTMLInputElement;

HTMLSelectElement:IHTMLSelectElement;

HTMLOptionElement: IHTMLOptionElement;

HTMLTextAreaElement: IHTMLTextAreaElement;

HTMLFormElement:IHTMLFormElement;

HTMLOptionButtonElement:IHTMLOptionButtonElement;

begin

for k:=0 to aElementCollection.length -1 do

begin

Vk:=k;

Application.ProcessMessages;

Dispatch:=aElementCollection.item(Vk,0);

if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then

begin

With HTMLInputElement do//单行文本

begin

if (UpperCase(Type_)='TEXT') or (UpperCase(Type_)='PASSWORD') then

begin

value:='text';

end

else if (UpperCase(Type_)='CHECKBOX') then//复选框

begin

checked:=true;

end

else if (UpperCase(Type_)='RADIO') then//单选框

begin

checked :=true;

end;

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLSelectElement,HTMLSelectElement)) then

begin

With HTMLSelectElement do//下拉框

begin

selectedIndex :=1;

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLTEXTAreaElement,HTMLTextAreaElement)) then

begin

with HTMLTextAreaElement do//多行文本

begin

value :='textarea';

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLOptionElement,HTMLOptionElement)) then

begin

with HTMLOptionElement do//下拉选项

begin

//处理

end;

end

else if SUCCEEDED(Dispatch.QueryInterface(IHTMLFormElement,HTMLFormElement))then

begin

with HTMLFormElement do//表单

begin

//处理

end;

end

else if SUCCEEDED(Dispatch.QueryInterface(IHTMLOptionButtonElement,HTMLOptionButtonElement))then

begin

//不明

//处理

end

else

//showmessage('other');

;

end;

end;

var

ShellWindow: IShellWindows;

Web: IWebBrowser2;

Dispatch: IDispatch;

i,j:integer;

IEAddress:string;

HTMLDocument:IHTMLDocument2;

ElementCollection:IHTMLElementCollection;

FrameWindow:IHTMLWindow2;

Vi,Vj:OLEVariant;

HTMLFrameBase :IHTMLFrameBase ;

HTMLFrameElement:IHTMLFrameElement ;

HTMLIFrameElement:IHTMLIFrameElement;

begin

ShellWindow := CoShellWindows.Create;

for i:=0 to ShellWindow.Count -1 do

begin

Vi:=i;

Dispatch:=ShellWindow.Item(Vi);

if Dispatch=nil then continue;

Dispatch.QueryInterface(IWebBrowser2,Web);

if Webnil then

begin

IEAddress:=Web.LocationURL;

if Pos(aURL,IEAddress)>0 then

begin

Web.Document.QueryInterface(IHTMLDocument2,HTMLDocument);

if HTMLDocumentnil then

begin

if HTMLDocument.frames.length =0 then//无框架

begin

ElementCollection:=HTMLDocument.Get_All;

DoWithHtmlElement(ElementCollection);

end

else//有框架

begin

for j:=0 to HTMLDocument.frames.length -1 do

begin

Vj:=j;

Dispatch:=HTMLDocument.frames.item(Vj);

//              if Succeeded(Dispatch.QueryInterface(IHTMLFrameBase,HTMLFrameBase)

if Succeeded(Dispatch.QueryInterface(IHTMLWindow2,FrameWindow)) then

begin

//                DoWithHtmlElement(FrameWindow.document.all);

end;

End;

end;

end;

end;

End;

end;

end;

procedure TMainFrm.btnTestClick(Sender: TObject);

begin

FillIEForm(edUrl.Text);

end;

end.

Delphi中WebBrowser自动填表模板

分类:IE & WebBrowser 2009-10-21 14:19 997人阅读评论(2)收藏举报

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;

type

TMainFrm = class(TForm)

btnTest: TButton;

edURL: TEdit;

Label1: TLabel;

procedure btnTestClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainFrm: TMainFrm;

implementation

{$R *.dfm}

procedure FillIEForm(aURL:string);

procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection);

var

k:integer;

vk:oleVariant;

Dispatch: IDispatch;

HTMLInputElement:IHTMLInputElement;

HTMLSelectElement:IHTMLSelectElement;

HTMLOptionElement: IHTMLOptionElement;

HTMLTextAreaElement: IHTMLTextAreaElement;

HTMLFormElement:IHTMLFormElement;

HTMLOptionButtonElement:IHTMLOptionButtonElement;

begin

for k:=0 to aElementCollection.length -1 do

begin

Vk:=k;

Application.ProcessMessages;

Dispatch:=aElementCollection.item(Vk,0);

if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then

begin

With HTMLInputElement do//单行文本

begin

if (UpperCase(Type_)='TEXT') or (UpperCase(Type_)='PASSWORD') then

begin

value:='text';

end

else if (UpperCase(Type_)='CHECKBOX') then//复选框

begin

checked:=true;

end

else if (UpperCase(Type_)='RADIO') then//单选框

begin

checked :=true;

end;

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLSelectElement,HTMLSelectElement)) then

begin

With HTMLSelectElement do//下拉框

begin

selectedIndex :=1;

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLTEXTAreaElement,HTMLTextAreaElement)) then

begin

with HTMLTextAreaElement do//多行文本

begin

value :='textarea';

end;

end

else if Succeeded(Dispatch.QueryInterface(IHTMLOptionElement,HTMLOptionElement)) then

begin

with HTMLOptionElement do//下拉选项

begin

//处理

end;

end

else if SUCCEEDED(Dispatch.QueryInterface(IHTMLFormElement,HTMLFormElement))then

begin

with HTMLFormElement do//表单

begin

//处理

end;

end

else if SUCCEEDED(Dispatch.QueryInterface(IHTMLOptionButtonElement,HTMLOptionButtonElement))then

begin

//不明

//处理

end

else

//showmessage('other');

;

end;

end;

var

ShellWindow: IShellWindows;

Web: IWebBrowser2;

Dispatch: IDispatch;

i,j:integer;

IEAddress:string;

HTMLDocument:IHTMLDocument2;

ElementCollection:IHTMLElementCollection;

FrameWindow:IHTMLWindow2;

Vi,Vj:OLEVariant;

HTMLFrameBase :IHTMLFrameBase ;

HTMLFrameElement:IHTMLFrameElement ;

HTMLIFrameElement:IHTMLIFrameElement;

begin

ShellWindow := CoShellWindows.Create;

for i:=0 to ShellWindow.Count -1 do

begin

Vi:=i;

Dispatch:=ShellWindow.Item(Vi);

if Dispatch=nil then continue;

Dispatch.QueryInterface(IWebBrowser2,Web);

if Webnil then

begin

IEAddress:=Web.LocationURL;

if Pos(aURL,IEAddress)>0 then

begin

Web.Document.QueryInterface(IHTMLDocument2,HTMLDocument);

if HTMLDocumentnil then

begin

if HTMLDocument.frames.length =0 then//无框架

begin

ElementCollection:=HTMLDocument.Get_All;

DoWithHtmlElement(ElementCollection);

end

else//有框架

begin

for j:=0 to HTMLDocument.frames.length -1 do

begin

Vj:=j;

Dispatch:=HTMLDocument.frames.item(Vj);

//              if Succeeded(Dispatch.QueryInterface(IHTMLFrameBase,HTMLFrameBase)

if Succeeded(Dispatch.QueryInterface(IHTMLWindow2,FrameWindow)) then

begin

//                DoWithHtmlElement(FrameWindow.document.all);

end;

End;

end;

end;

end;

End;

end;

end;

procedure TMainFrm.btnTestClick(Sender: TObject);

begin

FillIEForm(edUrl.Text);

end;

end.


相关文章

  • 网友热议:电子病历编辑器控件的实现思路
  • 网友热议:电子病历编辑器控件的实现思路 目前无论是网上.会议.还是卫生部标准,都在大篇幅地讨论电子病历的结构化问题.各个医院电子病历编辑器控件的设计思路是依据实际需求而定,它不仅仅要满足书写病历,还必须支持健康档案书写需要,例如表格.图片. ...查看


  • Delphi控制Excel自动生成报表1
  • Delphi控制Excel自动生成报表 2010-05-23 23:14 1 引言 数据报表作为企事业单位上报和下达的重要信息载体,随着信息化建设的不断推进,在实际的工作中得到了前所未有的应用.因此,数据报表已经成为管理信息系统中重要的一项 ...查看


  • 家装毕业设计范文
  • 题 专 学 姓 西 南 交 通 大 学 网 络 教 育 学 院 年 月 日 院系 西南交通大学网络教育学院 专 业 计算机科学与技术 年级 姓 名 学习中心指导教师 题目 考试题库系统的设计与实现 评 评 阅 成 绩 答辩委员会主任 () ...查看


  • 课程设计内容格式范例
  • HND项目班主任辅助管理信息系统 1绪 论 1.1系统开发背景 本设计题目是基于武汉理工大学国教育学院班主任的学生管理工作. 国际教育学院是由我校和国外几所高校联合办学.学生入学第一学年学习预科课程,是由我校开设的一些基础课,包括高等数学和 ...查看


  • 监控网页中元素的事件
  • 对编写脚本熟悉的读者都知道页面中可以添加脚本响应元素的事件,例如超链接的OnClick事件,图片的OnMouseMove事件,我们也可以使VB程序响应这些事件.下面是一个VB响应页面中按钮的Click事件的代码: 首先建立一个新工程,在Fo ...查看


  • C#获取网页内容的三种方式
  • 搜索网络,发现C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse... 方法一:使用WebClient (引用自:http://fbljava.blo ...查看


  • 仓库管理系统实验报告 (1)
  • 仓库管理系统 一实验目的 学习使用vs2008开发数据库应用程序的一般方法及步骤:熟悉数据库引擎BDE .ADO ,熟练使用数据库程序开发中的相关组件:对前面所学的知识做一总结与回顾. 二实验内容 ● 系统分析及数据库设计 随着科学技术的发 ...查看


  • Delphi面向对象编程的20条规则
  • 好处.虽然封装不是创建一个好的面向对象程序的唯一标准,但是它构成了面相对象编程的基础,所以在本文中我也许会过多的强调封装性,请不要感到奇怪,我有足够充分的理由这么做. 最后,我想说明这样一个事实:本文将主要集中说明窗体(Forms)的开发( ...查看


  • 本科计算机论文题目
  • 基于asp 语言的测试项目 学生信息管理系统的设计与实现 基于ASP.NET 的社区人口管理系统 基于ASP.NET 的课程教学网站设计 公司会议网站 C#高校工资管理系统 C#在线点歌系统 <数据库原理>精品课程网站设计 教师 ...查看


热门内容