关于ActiveX控件!
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
详细描叙:
我以前在一个网站上看**电视(在线播放)很正常,但是最近出了点问题,当我点击在线播放的时候在播放的那个网页跳出一行字:您的安全设置不允许网站使用安装在您计算机上的ActiveX控件。此页可能没有正确显示。单击此处查看选项...
接下来要等差不多两分钟左右的时间才正常播放,而以前打开播放网页马上会显示正在连接,正在缓冲,差不多30秒左右就可以正常播放了。
请问,是什么原因呢?和跳出的那一行字有关系吗?
本人现在有用金山毒霸和兔子魔法v7.9版本,经常设置一些东东,是不是有地方设置错了?还是把电脑中的某些参数设置错了,请高手指点,不胜感激!
解析:
Authorware作为一种主要面向非程序员的多媒体创作工具,具有简单易用、编程灵活的特点,但其软件功能相对比较简单。为了满足一些高级设计人员进行复杂程序创作的需要,Authorware从4.0版本开始提供了对ActiveX控件的支持,允许用户在Authorware文件中嵌入ActiveX控件,与其它支持ActiveX控件的环境中一样方便快捷地使用。由于有许多软件厂商支持ActiveX技术,所以大多数功能都能找到相应的ActiveX控件。这意味着在Authorware中,通过调用ActiveX控件来直接使用现成的程序模块,从而省掉许多繁琐的编程工作。所能使用的ActiveX控件,除了Windows操作系统本身提供的以外,.还可以根据需要,利用编程语言如VB、VC、Delphi等,制作具有特殊功能的ActiveX控件,然后在Authorware中使用它们。
1 ActiveX的基本知识
1.1 Activex简介
ActiveX是Microsoft的元素软件标准。简单地说,ActiveX技术是一种共享程序数据和功能的技术。它由微软提出并大力推广,并已成为事实上的标准。
ActiveX技术是Microsoft对OLE技术的更新和发展,Microsoft公司为了适应网络的高速发展把它的OLE技术和OCX技术融为一体并加以改进形成联合标准,改进之后赋予新名字ActiveX。也就是说,ActiveX中涵盖了OLE的所有技术和功能,同时又具有许多新的特性,以适应网络发展的需要。
ActiveX指的是一组包括控件、DLL和ActiveX文档的组件,它通常以动态链接库的形式存在,其设计思想是将一个程序(比如Flas *** )嵌入到另一个程序中(这个程序通常被称做容器,比如Authorware、Delphi、VB、VC、Inter Explorer等)。借助这种技术使得用户在一个程序中所创建的信息可以被集成到其它程序所产生的文档中。.这样就可使它(如Flas *** )可以随意地应用到各种场合。
ActiveX控件的数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器之间必须有一些特定的接口协议。ActiveX控件必须具备如下的性能机制:
属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制,容器可以存取和改变ActiveX控件的属性参数。
事件:ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。
虽然在本质上ActiveX和OLE是同一种技术(实现不同程序的数据和功能的共享),但其目的有所差别。ActiveX的目的主要是共享程序模块之间的计算功能,生成一些专门的可以嵌入其他程序中的“小程序”,例如Microsoft web浏览器控件可以使得别的应用程序能够浏览(仅仅是浏览而不是创建)Web网页。
ActiveX控件是一个模块化的灵活对象,如果某个应用程序或网页需要增加一项特殊的功能,则无须重写整个程序,只要灵活地插入一个具有此项功能的ActiveX控件即可实现,ActiveX的优势还在于它的动态可交互性,用户可以动态地在使用过程中,通过改变它的属性和参数,在应用程序中实现自己的特殊要求。
1.2 使用ActiveX
作为一个外部程序,ActiveX控件在Authorware中的使用与普通图标的使用有很大区别。总的来说,使用ActiveX控件要涉及到以下内容。
1.2.1 安装注册控件
如果要使用自己编写的控件或者使用其他人提供的控件,就先要在Windows中进行注册。同样如果我们的程序中使用了控件又要交给用户使用,最好必须先检测用户机中是否注册了该控件,若没有就要进行注册。
注册的方法有两种:
1.手动注册
方法是:单击Windows的开始菜单,选择运行命令,在打开的对话框中输入以下命令:
regsvr32
regsvr32.exe是Windows自带的ActiveX注册工具,可以在Windows的系统目录中找到,假定要注册一个自建的控件New.ocx,那么就输入如下命令:regsvr32 new.ocx,如图1所示。
图1 运行窗口
单击确定按钮,如果注册成功,将会出现如图2所示的对话框,提示成功,否则会出现如图3所示的对话框,提示没有注册成功,原因一般是已经注册过该控件或控件本身有问题。
图2 注册成功对话框
图3 注册失败对话框
若要解除某一个ActiveX控件的注册,则格式如下:
regsvr32 /u
比如要删除刚才.注册的控件new.ocx,就可以在运行窗口输入以下命令:
regsvr32 /u new.ocx
然后单击确定按钮,如果删除成功,将出现对话框来提示成功删除,如图4所示。
图4 控件删除成功对话框
2.在Authorware中自动注册
方法是利用Authorware 中的Xtra ActiveX 里的函数来进行注册。
对ActiveX控件注册的格式如下:
ActiveXControlRegister("")
如要注销该控件,格式如下:
ActiveXControlUnregister("")
同样以new.ocx为例(通常首先要检测当前系统是否支持控件注册):
注册控件:
if ActiveXInstalled()=-1 then
result:= ActiveXControlRegister(FileLocation^"new.ocx")
end if
这里假定new.ocx是放在程序文件所在目录中。result是自定义变量,用来记录函数ActiveXControlRegister的返回值的,若注册成功则返回值为-1,.否则为0。
注销控件:
if ActiveXInstalled()=-1 then
result:= ActiveXControlUnregister(FileLocation^"new.ocx")
end if
具体的用函数注册控件和删除控件在后面相应的实例中均有介绍。
动态链接库和静态链接库的区别
ActiveX.dll是进程内的组件(如果不用MTS),
ActiveX.exe是进程外组件,主要区别在于与调用者是不是属于同一个进程。
ActiveX.exe 可以做AutomotionServer或DCOMServer,
普通的不能。
平台移植:DLL的平台移埴方便些,COM就只能在win32下
语言支持:COM对win32下的语言支持好些,基本所有语言都可以调用,如VB,JavaScript等.
接口:DLL一般是以函数API的方式提供,COM则是用类的方式
向前兼营:DLL可以保留接口,增加函数,但感觉还是没有COM的方便,COM可以新增一个接口,对应的是一个类,使用上更方便些.特别在多次升级后,应该 COM更有优势
多进程共享:DLL可以共享内存段,COM可以是以独立进程存在.应该说COM更强些.
一、指代不同
1、动态链接库:是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。
2、静态链接库:函数和数据被编译进一个二进制文件(通常扩展名为*.LIB),VisualC++的编译器在链接过程中将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。
二、特点不同
1、动态链接库:库函数的扩展名是”.dll"、".ocx"(包含ActiveX控制的库)或者".drv"(旧式的系统驱动程序)。
2、静态链接库:使用的.lib文件,库中的代码最后需要连接到可执行文件中去。
三、调用方法不同
1、动态链接库:提供了一种使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL文件中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
2、静态链接库:用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可执行文件一起发行。
百度百科-静态链接库
百度百科-动态链接库
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!