`
daohao123
  • 浏览: 56176 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于ActiveX 控件开发动态Web页

阅读更多
基于ActiveX 控件开发动态Web页
烟台东方电子科学技术研究院中心所 龚建勇

  Web页面的开发主要分为三类:静态Web页面、半动态Web页面以及Client端动态页面。本文重点论述基于ActiveX Control(控件)动态实时页面的开发。

  ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法。因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览。下面介绍这个问题。

在Web页中加入ActiveX 控件
  在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中;将该控件下载给用户;在用户机器上安装该控件。如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单;如果同时兼顾IE和Netscape用户,则要做更多工作。大家知道,HTML文件由文本和各种标志(tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是:

  1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式。

  2.CLASSID:是该控件唯一的UUID,告诉IE装入哪个对象。如果使用已经开发好的控件,它的CLASSID可以通过调用Win95或NT下的应用Regedit来查找。从开始菜单中运行该程序,展开HKEY_CLASSES_ROOT项,可以看到按字母顺序排列的注册表,找到需要使用的控件名,例如WClnt,展开时可看到一个CLSID文件夹,里面就是该控件的CLASSID。

  如果是自己用VC开发控件,该UUID可以在ActiveX控件项目中的ODL(对象描述库)文件中找到;通过查看控件的类信息注释来定位特定控件的UUID,例如,要找到CMyControl控件的UUID,则需要找到以下代码:

  // Class information for CMyControl

  [uuid (051C4748-1262-11D2-87C1-00A024D948FB),

  licensed,

  helpstring(“CmyControl Control”), control ]

  uuid后面括号中的内容就是该控件的UUID。

  3.CODEBASE:如果在用户机器上没有控件的当前版本,该参数告诉用户浏览器在哪里可找到要下载的控件和最新版本号.当控件作了修改后,可以更改版本号强制用户重新下载。

  4.PARAM:该标记用于设置控件的初始属性值,它有两个特性:Name和Value,即属性名称和属性值。

  此外还有一些标记,如:Width表示该控件所占的宽度,Height表示高度等,总体来说,这样一个插入控件的HTML代码和插入Java Applet的HTML代码非常相似。

  下面是一个嵌有ActiveX控件的HTML代码示例:

 

ID=“CMyControl”

CLASSID=“clsid:051C4748-1262-11D2-87C1-00A024D948FB ”

CODEBASE=“http://www.mysite.com.cn/ocxdir/mycontrol.ocx#version=1,0,0,1”

WIDTH=400

HEIGHT=200

ALIGN=center

HSPACE=0

VSPACE=0



  如果希望控件还能在Netscape中运行,除了Netscape需加装插件外,HTML也要加一些附加标记,下面的例子中EMBED段就是为Netscape加上的。如果使用MFC开发OCX控件,则少数用户第一次访问时除了下载OCX文件外,还要下载相应的MFC DLL,下载量变大,这时可将相关文件在服务器端打包成可以在客户端自解压安装的CAB文件。经过修改后的HTML代码段如下:

<ALIGN=“CENTER” CLASSID=“clsid:

7BCA18C6-2178-11D2-87C1-00A024D948FB”

WIDTH=“1200” HEIGHT=“900” ID=“marquee”

CODEBASE=“http://218.168.188.188/scadaweb/

WClnt.cab#version=1,0,0,1”>

<EMBED ALIGN=“CENTER”CLASSID=“clsid:7BCA18C6- 2178-11D2-87C1-00A024D948FB”

WIDTH=“1200” HEIGHT=“900” ID=“marqueequot;”

CODEBASE=“http://218.168.188.188/scadaweb/

WClnt.OCX#version=1,0,0,1”

TYPE=“application/oleobject” >

实时动态页面的实现方案
  对实时动态页面的要求多产生于一些要求自动更新实时数据的应用中,如电网监控、股市监测等。具体要求是:用户只需选取希望浏览的图表,但无需介入操作,该图表就能根据实时数据不断更新,用户总能观察到最新情况。

  要实现上述功能,结构上有两种方案:一种是设置一个中介服务器,该服务器作为控件和后台系统信息交流的中介;另一种是不设中介服务器,但在提供实时数据的后台服务器上留出供控件通信用的数据接口,控件可以直接从后台服务器上定时获得当前实时数据。按数据提供方式分也有两种:一种是由客户端定时向服务器发出请求,指明需要的实时数据,服务器收到请求后将满足请求的动态数据发送至相应客户;另一种是客户端只请求一次,服务器端便定时将满足请求的实时数据传到客户端,直到客户更换要显示的图表或停止刷新。上述各方案都有其优点和局限,在应用中可考虑实际情况采用相应方案。

  工作流程为:用户先从Web服务器上下载包含ActiveX 控件的网页,控件随即在客户机上注册运行,并通过Winsock同中介服务器或直接同提供实时信息的网,如股票信息网相连接,定时取得动态实时数据,并刷新显示。在这个体系中,客户有两条线路获得信息,一条是和Web Server的连接,从这条线上用户访问主页;另一条就是控件和后台信息网的连接,从这条线路上用户可以访问实时数据。后一条线路用Winsock建立,传输速度远大于前一条线路,且控制灵活、效率高,不和主页下载争资源。通过这条线路,用户甚至可以传送远程控制信息实现遥控操作。

利用MFC开发ActiveX控件
  利用VC5.0开发的这种控件,功能可扩展性强,理论上独立的VC5.0程序具有的功能,该控件都能实现,例如控件直接绘制浏览器,可以使用OpenGL等图库,图形图像功能强大。实时数据刷新频率理论上可达毫秒级,用户通过鼠标可以实现各类交互操作,如旋转、缩放,图2就是一幅GL图形,并有一个缩放工具条进行缩放操作。如果是在计算机上观看,可以看到这几个三维图在不断旋转。

  应该说,较好的开发工具可直接用API编程或使用ATL模板库,利用MFC开发ActiveX控件不是一个好的选择,因为控件运行需要MFC DLL的支持。假如客户机器上没有这些类库(这种情况很少,但确实存在),第一次下载就要花费些工夫。不过对于熟悉MFC的开发员来说,这些问题相对MFC提供的便利来说都是可以忽略的。

  由于VC5.0对ActiveX控件的开发提供了许多便利,所以开发一个ActiveX控件并不像许多人想象中的那么困难复杂,通过VC 5.0的AppWizard,实现控件的主类从ColeControl类派生出来,该类则是CWnd的一个子类,所以你可以像对窗口类编程一样对这个主类编程。为了实现上面提及的功能,首先必要重载它的OnDraw函数加入需要绘制的对象,加入Winsock类(CSocket或CAsyncSocket),以实现与后端数据服务器的通信。如果需要用OpenGL绘制丰富多彩的立体图,则要初始化GL环境。其他的工作就在于用户如何控制程序的调度,使得各功能都能正常工作且与其他部分正常通信。此外,后端服务器程序也要增加对应于该控件的接口。

  这样的一个程序编译通过后,就成为一个可用于Web的控件,后缀名是OCX。按照前面叙述的方法将该OCX置入主页,基本的工作就算完成。

  综上所述,利用VC5.0开发ActiveX控件用于Web浏览,主要有以下几个特点:

  1.采用Winsock的通信机制,速度快、控制灵活、效率高;

  2.控件采用VC5.0编制,功能可扩展性很强;

  4.控件第一次下载虽然稍费时间,但下载后即在用户机上注册,以后可直接调用,速度效率均好;

  5.ActiveX技术是微软发展的重中之重,且已成为当前软件发展的潮流所向,发展空间广阔;

  6.系统采用VC开发,可以利用已有的采用C语言编制的系统,开发工作量大大减少。

分享到:
评论

相关推荐

    使用C#开发ActiveX控件(含示例教程)源码20130626

    ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍...

    《使用C#开发ActiveX控件》

    ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍...

    使用VS2008C#开发ActiveX控件

    使用 ActiveX 插件,可以轻松方便的在 Web 页中插 入多媒体效果、交互式对象以及复杂程序等等。 通常使用 C++或 VB 开发 ActiveX 控件,本文探讨一下在 Visual Studio 2008 环境中使用 C#开发 ActiveX 控件的技术...

    WEB页面通过ActiveX控件调用DLL动态库系列教程全部例程(vs2013)可用

    WEB页面通过ActiveX控件调用DLL动态库系列教程全部例程(vs2013)可用,配合教程。教程共分为四个小节,快速掌握DLL,C++静态/动态调用DLL,ActiveX静态/动态调用DLL。

    C#编写web页面ActiveX控件

    使用C#开发一个ActiveX控件实现读取并显示客户端的系统时间。

    高拍仪OCX控件,activex控件,SDK开发包.docx

    高拍仪控件集成,即各类应用软件系统通过集成高拍仪控件,解决在java、.net、php等软件开发中遇到的高拍仪编程操作问题,快速在asp.net、jsp、asp等web项目中调用高拍仪设备,使得用户办公流程更便捷、顺畅。...

    C#开发ActiveX控件 源码

    ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序... 通常使用C++或VB开发ActiveX控件,本文探讨一下在Visual Studio 2005环境中使用C#开发ActiveX控件的技术实现

    使用VS2008C_开发ActiveX控件

    使用ActiveX 插件,可以轻松方便的在Web 页中插 入多媒体效果、交互式对象以及复杂程序等等。 通常使用C++或VB 开发ActiveX 控件,本文探讨一下在Visual Studio 2008 环境中使用 C#开发ActiveX 控件的技术实现。

    使用VS2008 C#开发ActiveX控件【源码】

    使用 ActiveX 插件,可以轻松方便的在 Web 页中插 入多媒体效果、交互式对象以及复杂程序等等。 通常使用 C++或 VB 开发 ActiveX 控件,本文探讨一下在 Visual Studio 2008 环境中使用 C#开发 ActiveX 控件的技术...

    海康威视 摄像头网络摄像头 WEB无插件开发包 Web 3.2控件开发包

    Web 控件 V3.2 基于 ActiveX 和 NPAPI 开发,接口封装于 javascript 脚本,以 javascript 接口形式提供用户 集成,支持网页上实现预览、回放、云台控制等功能。该控件开发包仅支持 B/S 网页开发,不适用于 C/S 开发...

    DLL+ ActiveX控件+WEB页面调用例子

    一、 概述 因项目需要,开始学习并研究VC、DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的。没办法,自己研究吧。功夫不负有心人,终有小成了,呵呵,现在把自己学习总结了一下...

    使用C#开发ActiveX控件

    activex控件以前也叫做ole控件,它是微软ie支持的一种软件组件或对象,可以将其插入到web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常activex控件都是用c++或vb语言开发,本文介绍...

    将winform控件作为activeX放到web页上代码及演示

    将winform控件作为activeX放到web页上代码

    ActiveX Web开发指南(完整版)

    书中第二部分讨论了ActiveX客户端编程技术,介绍了ActiveX控件及制作交互式Web页的客户端标准。书中附有大量编程实例。本书是一本拥有许多关于ActiveX技术、大量实用源程序代码和可用类库的权威参考书。

    Activex控制开发手册.chm

    Activex控件开发工具,编程必备。把ActiveX控件和脚本加入到你的HTML页面中.

    C#|activeX手写板控件web调用签名打包自动升级等

    前几天在做查询终端页面由于部分有一定年纪,不会打字的又需要输入姓名等查费用,在本论坛上找到手写输入的,后来就用了然后重新封装activeX控件,给页面调用,整理了一下,C# activeX控件安装包制作成自解压运行cab...

    流媒体客服端ActiveX控件的设计和开发

    Web技术以HTTP协议为基础,...对于流媒体数据,采用在HTML页面汇总内嵌ActiveX控件直接对应用服务器进行访问,提高了访问的实时性。ActiveX技术是用于组件对象模型(COM)的一项技术,它使各种软件组件可以在网络环境中使用。

    C#开发ActiveX控件【电子秤源码】

    WEB页获取串口数据读取电子秤的值,使用C#语言的控件对串口进行控制,然后使用JS+AJAX与C#进行交互获得串口数据

Global site tag (gtag.js) - Google Analytics