delphi谷歌浏览器填表?chrome delphi

大家好,关于delphi谷歌浏览器填表很多朋友都还不太明白,今天小编就来为大家分享关于chrome delphi的知识,希望对各位有所帮助!

delphi谷歌浏览器填表?chrome delphi

本文目录

  1. Delphi开发嵌入式IE浏览器监控程序
  2. 用Delphi制作以浏览器为界面的应用程序
  3. 请问如何用delphi实现获取浏览器url
  4. delphi制作的activex(ocx)如何用于ie浏览器

一、Delphi开发嵌入式IE浏览器监控程序

随着网络的发展和普及,对网络的监控日益成为网络安全的必然要求,也是管理和维护网络的一个有效手段。当前已经有多种应用比较广泛的网络监控和过滤程序,如美萍网管、we-blocker等,它们都可以实现基于网络URL和IP地址的监控和过滤功能。

本文将对如何开发一个嵌入到IE浏览器中的监控程序进行介绍,该程序可以根据网络URL和IP地址进行监控和过滤,并且记录系统日志,从而使你对IE(当然是使用它的用户)的所有操作一览无余。相信通过阅读本文,会加深你对网络监控程序的理解,以及提高你的COM编程能力和数据库编程能力。

本文在Delphi 6开发环境下实现,数据库使用桌面数据库Access 2000。

COM(Component Object Model,组建对象模型)是微软公司(Microsoft Company)提出的二进制通信规范,用于软件组件之间的跨越多个进程、机器、硬件和操作系统的互操作,它是一项通过接口(Interface)透明的传递封装数据的技术,并且独立于语言和操作平台。一个COM对象是实现一个或者若干个接口的对象,即COM对象借助接口输出它所提供的服务。

IE浏览器的体系结构如图1所示。其中MSHTML是位于SHDOCVW和HTML页面之间的COM对象,SHDOCVW对象用于处理页面的显示,而MSHTML用于处理页面的语法分析,并且将页面中的标记转换为元素。MSHTML是一个COM服务器,允许COM客户端程序访问它对外提供的服务。

实现IE浏览器嵌入式编程的基本方法是建立COM对象,从而以COM客户端程序的形式和MSHTML COM服务器建立连接,然后通过接口回调实现需要的控制功能。也即首先建立COM对象,实现系统规定的若干接口,然后注册COM对象,并且将COM对象的有关信息写入到IE浏览器扩展功能指定的注册表位置。

嵌入式IE浏览器监控程序的实现主要包括监控程序的实现和维护程序的实现两部分,根据程序开发过程,可以将其分为四个步骤,下面分别对各个实现步骤进行详细介绍。

开发COM对象的任务就是建立一个能够与IE浏览器的MSHTML COM服务器建立连接并且通过接口回调实现控制功能的COM对象,具体实现过程如下:

(1)运行Delphi,依次点击File|New|Other,切换到ActiveX页面,选择ActiveX Library,点击OK按钮,即建立一个新的工程。

(2)再次点击File|New|Other,切换到ActiveX页面,选择COM Object,点击OK按钮,即出现如图2所示的COM Object Wizard界面,去掉Included Type Library复选框,在Class Name中输入COM对象的名称IEMonitor,然后点击OK按钮,即新建了一个名称为TIEMonitor的COM对象(该COM对象的CLSID由系统自动生成)。

(3)将工程和单元文件依次保存为DIEMonitor.dpr和UIEMonitor.pas。切换到UIEMonitor.pas单元文件,我TIEMonitor的定义形式如下:

TIEMonitor= class(TComObject, IDispatch, IObjectWithSite)

function GetTypeInfoCount(out Count:Integer):HResult;stdcall;

function GetTypeInfo(Index,LocaleID:Integer;out TypeInfo):HResult;stdcall;

function GetIDsOfNames(const IID:TGUID;Names:Pointer;

NameCount,LocaleID:Integer;DispIDs:Pointer):HResult;stdcall;

function SetSite(const pUnkSite:IUnknown):HResult;stdcall;

function GetSite(const riid:TIID;out site:IUnknown):HResult;stdcall;

function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;

Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;

注意在UIEMonitor.pas单元文件的Uses中需要手动加入对SHDOCVW, Dialogs, SysUtils, Forms的引用。

其中主要是对IObjectWithSite接口的SetSite()方法和IDispatch接口的Invoke()方法的实现:首先通过SetSite()方法获得IE的WebBrowser接口,然后寻找连接点,并且通过调用Advise()方法建立COM自身与连接点的连接;当连接建立成功后,IE在事件引发后,会调用连接到自身的IDispatch接口对象的Invoke方法,不同的事件对应不同的DispID编码,因此可以通过在程序中判断DispID对不同的事件做出相应的处理。系统主要对BeforeNavigate2、DownLoadComplete和OnQuit三个事件进行处理,它们对应的DispID分别为250、104和253。在Invoke()方法中,根据DispID分别调用DoBeforeNavigate2()、DoDownLoadComplete()和DoOnQuit()函数实现相关处理和控制功能,具体实现详见程序源代码。

(4)编译工程,生成DIEMonitor.dll文件。

二、用Delphi制作以浏览器为界面的应用程序

很多人想把自己编写的应用程序做成以浏览器为界面,通过打开浏览器的方式来使用应用程序,其实在delphi中实现起来很简单,我们以用delphi6.0为例把实现的完整步骤写出如下:

1、选择"file\new\other"于new items对话框中选择activex选项,在其中选择建立activex form。此时会弹出一个对话框用于输入你所建立activex组件的名称、object pascal程序单元名称、项目名称等。还有一些activex包含版本控制编号等可选项,可以按缺省的设置直接点击ok即可。

2、现在你可以在打开的工程中来设计你的程序了,这里和一般的应用程序的设计一样,可以根据自己的需要来创建不同的form来实现自己的功能。但需要注意一点的是各form之间的调用不能用form.showmodal来实现了,需要动态调用form来实现,如以下定义过程:

Procedure Tform1.ShowForm(AFormClass:TFormClass);

With AFormClass.Create(Self) do

调用form2可以用:showform(Tform2),程序设计完成后,保存单元文件和工程文件到相应的目录下。假设保存在"c:\my documents"。

3、程序设计完成之后,可以准备生成你所想要的应用程序了,但这里不是点击运行,而是首先选择"project\web deployment options"在project选项中的"Target dir"中添入".\",""Target URL""中添入""./"",""HTML dir""中添入"".\""来设置一些文件存放路径。最后选择""project\web deploy"",点击""yes to all""即可。

此时打开""c:\my documents""会看到已生成的htm文件,打开htm文件你会看到你所设计的应用程序已经可以在浏览器中使用了。你可以用网页编辑器来修改所生成的htm文件使它更符合你的要求。至此完整的实现过程结束。实际上Delphi是把编写的应用程序编译成了activex组件,在浏览器中调用activex组件,所以只适用于一些小的应用程序。

三、请问如何用delphi实现获取浏览器url

function GetIEAddress(IEHandle:THandle;var Address:string):Boolean;

CtlNames:array[0..4] of string=(

WorkerA,//获得IE窗口的工作区的句柄

ReBarWindow32,//获得IE窗口的菜单栏的句柄

ComboBoxEx32,//获得IE窗口的下拉菜单的句柄

ComboBox,//获得IE窗口的下拉菜单当前项的句柄

Edit//获得这个下拉菜单的编辑框句柄

AddBuf:Array[0..4095] of char;

for i:=0 to length(ctlnames)-1 do

hwnd:=FindWindowEx(hwnd,0,PChar(CtlNames[i]),nil);

AddLen:=SendMessage(Hwnd,WM_GETTEXTLENGTH,0,0);

//向系统发送获得IE窗口的地址栏中的字符串长度命令

SendMessage(Hwnd,WM_GETTEXT,AddLen+1,DWord(@AddBuf));

//向系统发送获得IE窗体地址栏中的字符串命令

GetWindowText(IEHandle,AddBuf,length(AddBuf)+1);

i:=pos(Uppercase(- Microsoft Internet Explorer),

if i>0 then s:=Trim(copy(s,1,i-1));

function EnumIEProc(hwnd:THandle;Param:LPARAM):Boolean;stdcall;

sClassName:Array[0..NAME_LEN] of char;

AddLen:=GetClassName(hwnd,@sClassName,NAME_LEN);

if(AddLen=7) and(sClassName=IEFrame) then

if GetIEAddress(hwnd,IEAddress) then

PStrings(Param).Add(IEAddress);

function GetAllIEAddress(var Addresses:TStrings):Integer;

EnumWindows(@EnumIEProc,LPARAM(@s));

if Result>0 then Addresses.Assign(s);

procedure TForm1.Button1Click(Sender: TObject);

if s.Count>0 then Memo1.Lines.Assign(s);

四、delphi制作的activex(ocx)如何用于ie浏览器

在Windows操作系统下,有一个重要的机制,就是OLE,就是可以让某

个应用程序(OLE Controller)访问其它应用程序(OLE Server)所提供的

功能,这样做的好处是,如果已经有了完成某项功能的程序,你就不必再为

某项功能编写特定的应用程序,可以直接通过OLE调用。

首先设置一个虚拟目录,定名为Delphi

2)New-> Other-> ActiveX-> ActiveX Form->Name: MyActiveX

3)出现一个普通的Form界面,放入

三个控件,设计目标是,点Button后ListBox添加一个Edit的内容。

4)Save all到虚拟目录的 ActiveX\Ac2\子目录下。

5)双击Button,在Button1Click事件程序下写:

ListBox1.items.add(edit1.text);

8)Porject-〉Web Deployment Options设置分发参数

第一项:OCX保存的目录(虚拟目录\ActiveX\ac2\)

第二项:OCX保存在哪个相对路径中

()

第三项:Delphi产生的HTML保存路径(虚拟目录\ActiveX\ac2\)

9)产生嵌入ActiveXForm的HTML文件

打开IE浏览器,把网址写为:

2000年5月27日 9:10 750 MyActiveImpl1.~dfm

2000年5月27日 9:11 9160 MyActiveImpl1.~pas

2000年5月27日 9:31 16936 MyActiveImpl1.dcu

2000年5月27日 9:16 51 MyActiveImpl1.ddp

2000年5月27日 9:14 778 MyActiveImpl1.dfm

2000年5月27日 9:15 9307 MyActiveImpl1.pas

2000年5月27日 9:11 334 MyActiveProj1.~dpr

2000年5月27日 9:11 6424 MyActiveProj1.~tlb

2000年5月27日 9:27 386 MyActiveProj1.cfg

2000年5月27日 9:27 1436 MyActiveProj1.dof

2000年5月27日 9:11 334 MyActiveProj1.dpr

2000年5月27日 9:29 382 MyActiveProj1.htm

2000年5月27日 9:31 477696 MyActiveProj1.ocx

2000年5月27日 9:27 1836 MyActiveProj1.res

2000年5月27日 9:11 6424 MyActiveProj1.tlb

2000年5月27日 9:11 15377 MyActiveProj1_TLB.~pas

2000年5月27日 9:31 11952 MyActiveProj1_TLB.dcu

2000年5月27日 9:11 15377 MyActiveProj1_TLB.pas

其中:MyActiveProj1.htm就是刚才内嵌的HTML文件,点击这个超级

链接,就可以看到包含ActiveX的网页了。

打开这个网页的源代码,可以看到这个HTML文件中真正重要的是下面

的一段,把这一段镶嵌到任何一个网页中,都可以调用这个ActiveX。而

其它部分可以用诸如Frontpage等网页设计软件来完成。

classid="clsid:937B0348-FF1E-4E70-9244-3375EF9AF5E5"

codebase=""

真正使用的时候,codebase要使用下面的地址

codebase="

要改成OCX文件存放的真正的网址。

OK,关于delphi谷歌浏览器填表和chrome delphi的内容到此结束了,希望对大家有所帮助。

声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。

本文链接:http://www.gdxhedu.com/news/148113.html