关键词: 组态
ActiveX控件(精选九篇)
ActiveX控件 篇1
关键词:ActiveX,组态软件,组件
0、引言
捣固车主要用于铁路的养修工作, 它在捣固线路的同时完成线路稳定作业。由于其工作的特殊性, 加之目前市场上常用的组态软件系统结构复杂, 价格昂贵, 应用繁琐, 不适应用户使用。因此定制组态软件, 方便地实现了在服务中心就可以实时监控远程捣固车工作状况, 在必要时候及时为操作员提供帮助。
组态软件都提供了使用Active X控件的能力。Active X控件是一个标准的COM对象, 是可重用的模块, Active X控件也是一个界面元素, 如同Windows的普通控件一样。
1、Active X控件关键技术
Active X控件是一种可重用组件, 一个典型的Active X控件具有属性、事件、方法三种特性。
1.1 属性
属性是Active X控件的特征, 它是Active X控件暴露给容器的数据。MFC支持两种属性:库存属性和自定义属性。库存属行由基类Cole Control实现, 调度映射宏以DISP_STOCKPROP为前缀。自定义属性是由用户自行定义。
1.2 属性页
属性通常是通过控件属性对话框被访问或设置的。控件属性对话框一般含有一个或多个属性页, 它使用得最终用户可以通过图形界面来访问和编辑控件的属性。
MFC提供三个Active X控件使用的库存属性页:CLSID_Color Prop Page, CLSID_Cfontprop Page, CLSID_C picture Prop Page.这些属性页显示相应的颜色、字体和图片属性。如果要在Active X控件中嵌入这些属性页, 那么必须添加相应的Id到代码中便初始化属性页宏。
1.3 事件
事件是控件在响应外部作用时由控件触发的通知。例如, 当单击控件动作发生时, 触发一个事件并通知容器。控件利用事件与控件的容器进行双向通信, 是基于发送消息或事件到窗口句柄来完成进程间的数据传输的。
MFC支持两种事件:库存事件和自定义事件。库存事件是由Cole Control自动处理的事件。自定义事件用于识别某一确定的动作, 由用户行定义。
对于每个控件触发事件, 控件类必须映射每个控件事件为当事件发生时要调用的成员函数。这种映射称为事件映射 (event map) 。可以用Class Wizard来访问和操纵控件事件的映射。在控件类的.h文件中, 事件映射由以下宏定义:DECLARE_EVENT_MAP () ;在.Cpp文件中用宏BEGIN_EVENT_MAP (CAct Conctrl, Cole Control) 和END_EVENT_MAP () 类来定义。
1.4 方法
Active X控件通过事件触发与容器通信, 而容器可以通过方法和属性来与控件通信。方法和属性是Active X控件提供的可被容器使用的暴露接口。容器通过调用方法来访问控件的属性和数据。
MFC支持两种方法:库存方法和自定义。库存方法是由Colecontrol自动处理的方法。自定义方法是由用户行定义的方法。
对于每个方法, 控件类必须声明调度映射 (dispatch map) 。调度映射在外部调用者使用的法名与控件类成员函数之间建立关系。控件类.h文件宏声明:DE-CLARE_DISPATCH_MAP () ;在Cpp文件中用宏BE-GIN_DISPATCH_MAP (CAct Conctrl, Cole Control) 和END_DISPATCH_MAP () , 自定义方法的映射宏为DISP_FUNCTION。
1.5 Active X控件的显示和绘制
每个Active X控件有两相基本状态:活动 (active) 和非活动 (inactive) 状态。当控件处于活动时, 控件在容器中是作为子窗口表示的, 当控件接收到WM_PAINT消息时要重新绘制。控件基类Cole Control在成员函数On Paint中处理WM_PAINT消息。默认时, On Paint函数将调用控件的成员函数On Draw, 负责控件的绘制。
当控件非活动时, 窗口不存在或不可见, 因此不可能接收绘制消息。此时控件的容器将直接调用控件的成员函数On Draw。
1.6 串行化
串行化是读/写永久存储介质的过程。Cobject类对串行化提供了内置支持。Cole Control通过使用属性交换机制将这种支持扩展到Active X控件。默认时, Active X控件的串行化通过重载Cole Control::Do Prop Exchange来实现。Active X对象的加载和存储期间, 将调用Do Prop Exchange。对于每个属性, Do Prop Exchange将调用相应的PX_函数。
2、参数显示控件设计
在定制组态软件中, 需用参数显示控件来显示捣固车车载PLC所获取的控制设备的工作参数, 当工作参数在正常值时用黑色显示, 当工作参数超出正常值时用红色显示, 显示的字号可根据显示组件的大小变化 (设正常值为1-15) 。图1图显示控件显示效果。
Visual C++6.0提供了Active X控件设计向导来快速的成Active×控件的设计。向导为每个Active×控件都搭建了个基本框架。设计者只需在这个框架的基础上为控件添加外部属性和成员函数就可以了。
2.1 属性和方法设置
用Class Wizard增加控件的属性、方法和事件:在MFC Class Wizard对话框的Automation标签中, 增加自定义属性:
2.2 绘制控件
控件的绘制主要是在绘制函数On Draw中实现。在函数中绘制控件的背景及数值。
2.3 控件属性页
在MFC Class Wizard中, 提供了一个名为IDD_PROPPAGE_MYDISP的属性页资源, 在这个属性页中可以添加一些控件来显示和修改Active X的属性。
3、Active X控件的使用
要在容器中使用Active X, 必须在Windows注册表中进行注册。使用Active X Control Wizard创建Active X控件时, 已经自动添加了DLLGegister Serer和DLLUnregister Server, 因此编译和建立时将自动注册Active X控件。用户还可以选择"Tools"菜单的"Registere Control"来手工注册一个Active X控件;还可使用Reg Sver32命令在命令行来注册Active X控件。
Active X控件注册后, 就可像使用标准控件一样使用。
该组件在功能上作了一些扩充后应用在捣固车监控系统组态软件中, 取得好的效果。
4、结语
Active X控件的应用使得组态软件的设计变得方便, 也容易在已有组态软件中进行功能扩展, 充分体现了软件开发的模块化、重用性、开放化的趋势, 提高系统的开发效率。
参考文献
[1]王亚民等.组件软件设计与开发[M].西安:西安电子科技大学出版社2003
[2]马国华.监控组态软态软件及其应用.北京:清华大学出版社2001
[3]孙鑫等.VC++深入详解[M].北京:电子工业出版社, 2008
[4]任志斌等.基于ActiveX控件的监控程序的研究与设计[J], 科技广场2004.10
ActiveX控件 篇2
ActiveX控件是基于组件对象模型COM--Components Object Modem的可重用软件组件,旨在用于普通的ActiveX控件容器和Internet上的网页,这里介绍用MFC创建ActiveX控件。一个典型的ActiveX控件,具有方法、属性、事件这三种特性。
二、ActiveX控件的测试与注册
1、使用ActiveX控件测试容器对控件进行测试
对于VC6.0,安装CommonTools目录下的TSTCON32.EXE即可使用。
而vs2010中的TSTCON(ActiveX Control Test Container)工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译: 如vs2010安装在默认路径则
1, 进入:C:Program FilesMicrosoft Visual Studio 10.0Samples1033,可找到VC2010Samples.zip文件,2, 将其解决到同一个文件夹,解压后将出现一个C++子文件夹。
3, TstCon例程在:C:Program FilesMicrosoft Visual Studio 10.0Samples1033C++MFColeTstCon,双击其中的.sln文件启动工程,直接编译,4, 编译后在Debug子文件夹中将出现一个TstCon.exe文件,将其复制到:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools文件夹。
5, 在vs2010中的Tools菜单点击“External Tools...”,出现如下对话框,点击“Add”添加一项工具。6, 新工具项的“Title”为:ActiveX Control Test Container,“Command” 为:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools TstCon.exe。
7, 确认退出对话框,Tools菜单将出现“ActiveX Control Test Container”菜单项。Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 打开控件测试容器初始界面如下图
Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 Edit→Insert New Control→选择要测试的控件→OK
2、ActiveX控件的注册与删除
所有的ActiveX控件必须在注册之后才能使用,实际上在VS2010开发环境中生成控件程序时,就已经通过regsvr32程序注册了该控件;如果要删除ActiveX控件的注册信息,利用regsvr32程序的/u选项来完成。通常可以选择“开始”→“运行”命令,然后输入“regsvr32/u”,再在其后输入要删除的ActiveX控件的完整路径。Tips:在“运行”中先输入regsvr32/u,然后拖动要删除的控件到“regsvr32/u”之后,即可获取其完整路径。
将xxx.ocx文件拷贝至Windowssystem下,然后regsvr xxx.ocx即注册;regsvr32/u xxx.ocx即删除。
三、ActiveX控件开发完整过程 经典Clock控件案例~~
1、创建工程
创建MFC ActiveX Control类项目,命名为Clock,MFC ActiveX Control Wizard全选默认,Finish。
2、时钟控件的实现
获取当前系统时间,CClockCtrl类的OnDraw函数中 CTime time=CTime::GetCurrentTime();CString str=time.Format(“%H:%M:%S”);pdc->TextOut(0,0,str);动态显示时间,CClockCtrl类添加WM_CREATE和WM_TIMER消息及处理函数 设置定时器SetTimer(1,1000.NULL);定时器相应函数InvalidateControl();//其实就是调用OnDraw函数
编译并运行ActiveX控件,然后打开ActiveX控件容器中插入该控件,可以看到动态显示的时间
3、属性 3.1标准属性
以背景色和前景色为例,类视图中展开Lib结尾的选项,右键“_DClock”→“添加”→“属性”,然后添加标准属性,及选中“Stock”,在PropertyName中选则BackColor,其余选中默认,单击完成。同理添加前景色ForeColor。
为属性对话框添加“颜色”选项卡,修改类CClockCtrl.cpp中的属性页映射宏PROPPAGEID(CLSID_CColorPropPage);切记计数参数要增加1: // 属性页
// TODO: 按需要添加更多属性页。请记住增加计数!BEGIN_PROPPAGEIDS(CClockCtrl, 2)
PROPPAGEID(CTimePropPage::guid)
PROPPAGEID(CLSID_CColorPropPage);END_PROPPAGEIDS(CClockCtrl)然后在修改OnDraw函数使控件颜色根据颜色选项卡的选则而变化:
CBrush brush(TranslateColor(GetBackColor()));
pdc->FillRect(rcBounds,&brush);
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextColor(TranslateColor(GetForeColor()));3.2自定义属性
添加一个自定义属性:时间间隔(UpdateInterval),用于设置更新时间的间隔。
与标准属性添加相同,在添加属性向导中,在PropertyName中输入UpdateInterval,类型设置为SHORT。可以看到向导自动添加了通知函数OnUpdateIntervalChange(),单击Finish完成添加。void CClockCtrl::OnUpdateIntervalChanged(void){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: 在此添加属性处理程序代码
if(m_UpdateInterval<1000 || m_UpdateInterval>6000)
{
//解决输入值不合要求的问题
m_UpdateInterval=1000;
}
else
{
//解决输入值不是整数的问题
m_UpdateInterval=m_UpdateInterval/1000*1000;
}
KillTimer(1);
SetTimer(1,m_UpdateInterval,NULL);
SetModifiedFlag();} 关联某控件变量,需要手动添加:
DDP_Text(pDX, IDC_EDIT1, m_updateInterval,_T(“Interval”));DDX_Text(pDX, IDC_EDIT1, m_updateInterval);DDP_PostProcessing(pDX);DDP、DDX、PostProcessing,顺序不可以调整
为测试自定义属性,在Edit→Insert New Control→选择要测试的控件后,选择Control→Invoke Methods,如果想要获取,某个属性值,则选择PropGet;如果设置,则选PropPut。这里选择后者,然后输入2000,单击SetValue,在单击【Invoke】按钮,发现控件时间每个2S更新一次。
4、方法
与添加属性一样,_DClock右键......选择“方法”,这里添加一个简单的“Hello” 代码:
void CClockCtrl::Hello(void){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: 在此添加调度处理程序代码
MessageBox(_T(“Hello world”));} 测试时Control→Invoke Methods,选择“Hello”
5、事件
5.1添加标准事件
右键CClockCtrl类(类视图CxxxCtrl上点击右键才能添加事件,而在_DxxxEvents接口上点击右键则没有添加事件),添加“事件”,显示添加事件向导对话框,“Event Name”下拉列表框中选择”Click“,单击Finish。5.2添加自定义事件
添加一个NewMinute事件,实现新的一分钟时有提示 Event Name中输入NewMinute,然后Finish。在InDraw函数中获取系统时间代码后添加 if(time.GetSecond()==0)
{
NewMinute();//判断是否过了一分钟,是则触发NewMinute事件
}
6、调用ActiveX控件
新建一个名为ClockTest的对话框,在对话框上右键,选择”Insert ActiveX Control“,找到Clock控件添加即可。
未签名ActiveX控件如何调用 篇3
什么是ActiveX
根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其他应用程序中。
在因特网上,ActiveX插件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。 ActiveX插件安装的一个前提是必须经过用户的同意及确认。
ActiveX插件技术是国际上通用的基于Windows平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。
浏览器如何保证ActiveX插件的安全性?
当通过Internet发行软件时,软件的安全性是一个非常引人注意的问题,IE浏览器通过以下的方式来保证ActiveX插件的安全:
ActiveX使用了两个补充性的策略:安全级别和证明,来追求进一步的软件安全性;Microsoft提供了一套工具,可以用它来增加ActiveX对象的安全性;通过Microsoft的验证代码工具,可以对ActiveX控件进行签名,这告诉用户你的确是控件的作者而且没有他人窜改过这个控件;为了使用验证代码工具对组件进行签名,必须从证书授权机构获得一个数字证书;证书包含表明特定软件程序是正版的信息,这确保了其他程序不能再使用原程序的标识。证书还记录了颁发日期。
当你试图下载软件时,Internet Explorer 会验证证书中的信息,以及当前日期是否在证书的截止日期之前。如果在下载时该信息不是最新的和有效的,Internet Explorer 将显示一个警告;在IE默认的安全级别中,ActiveX控件安装之前,用户可以根据自己对软件发行商和软件本身的信任程度,选择决定是否继续安装和运行此软件。
注意
数字签名不保证文件一定无害。签名的文件可能仍然包含有害的代码,如果该文件是按照这种有害方式创建的话。这就是为什么当你开始从浏览器打开某些文件类型时,即使它具有有效的数字签名, Windows 也将询问你是否希望打开该文件的原因(如图1)。
如何调用未签名ActiveX控件
一般我们安装的ActiveX控件都是带签名的,这种ActiveX控件就表明属于安全的。但是有时候当开发者开发出ActiveX控件时需要进行调试,但是这个时候还没有数字签名时,我们如何才能让IE浏览器安装调用未签名的ActiveX控件呢?
我们可以通过下面的方法来进行解决。
首先打开Internet选项,在“高级”菜单中勾选“允许运行或安装软件,即使签名无效”菜单,然后确认保存。然后在Internet选项中继续切换到“安全”选项卡,单击下面的“自定义级别”,在弹出的菜单中勾选如下选项(如图2)。同样在“安全”选项卡中,选中“受信任的站点”再单击“站点”按钮,然后添加你要访问的网站的地址,然后重新启动浏览器即可(如图3)。
如果想删除控件,可以在 C:\Windows\Downloaded\Program Files 目录里找到控件,但是删除之前记得先关闭浏览器。如果你是一个普通用户,运行未签名ActiveX的控件会有风险,所以尽量使用已知的安全的控件。
ActiveX控件 篇4
在数据采集系统中我们经常碰到这样的问题,就是采集回来的数据如何显示给用户才能将数据中的有用信息有效地提供给客户,而数据可视化提供了做好的解决方案,这样可以将数据以图表或图像的形式呈现给客户,使客户一目了然,大大减轻了客户的工作压力。而要实现数据可视化有多种途径,例如Mathwork公司的matlab、微软的word、excel等软件以及Visual studio自带的MSChart ActiveX控件都提供数据的可视化功能,本文主要介绍ActiveX控件的使用。
1 NTGraph控件介绍
NTGraph控件是www.codeproject.com网站上的一个开源绘图控件,其作者是Nikolai Teofilov。它是一个功能强大并且简单易用的ActiveX控件,利用该控件可以很方便地绘制直方图、折线图、点图和曲线等,具有速度快、无闪烁等优点,在该网站上不仅提供控件的源代码还提供控件的使用示例。
2控件使用方法
该控件的使用方法主要有以下几个方面:
1) 要使用此控件,首先必须注册,注册的方法是在开始菜单的运行对话框中输入“regsvr32 文件所在目录ntgraph.ocx”后回车即可。
2) 注册成功后就可以在Visual Studio中使用此控件了,
3) 控件的属性。在控件上双击鼠标左键就会弹出控件属性设置对话框,在此对话框中包括图属性、元素(曲线)属性、标注属性、游标属性和坐标格式属性等进行设置。其中在图属性对话框中更改Track选项可以进行图形的移动和缩放。更改Frame选项可以改变控件的外观。
4) 控件的编程。要对控件编程首先给控件添加一个变量,方法是在控件上点击鼠标右键,在弹出的菜单中选择“添加变量(Add Variable)”即可。a) 添加曲线(Element)。控件创建后自动包含一条曲线,其ElementID为0,若需要添加曲线则使用AddElement()函数,其ElementID顺序递增,依次为1、2、3……;b) 设置曲线颜色。使用SetElementLineColor()函数可以设置当前曲线的颜色,而SetElement()函数可以设置当前曲线。c) 绘制曲线。绘制曲线有两个函数:PlotXY()和PlotY(),PlotXY()函数允许你添加X和Y值,而PlotY()函数则只需添加Y值,X值自动增加。d) X、Y轴范围设定。有两个函数可以设定X、Y轴的范围,SetRange(Xmin,Xmax,Ymin,Ymax)和AutoRange(),使用AutoRange函数后,X、Y轴的值可以根据数据自动调整。e) 删除元素(曲线)。使用DeleteElement(ElementID)函数即可。f) 图形保存。图形保存包括图形打印和将图形保存为BMP文件,即PrintGraph()和SaveAs()函数。图1为笔者的程序打印出的图形。下面给出一个例子,其中m-Graph为控件添加的变量:
5) 控件的缩放。为了支持控件的缩放,笔者使用了ResizableLib开源库,但在使用中发现ResizableLib与非Visual Studio标准控件存在兼容性问题,即仅添加ResizableLib库还不能实现非标准控件的缩放,还需要在ActiveX容器对话框(笔者的程序是基于对话框的应用程序)的OnSize函数中作如下处理:
其中,IDC-NTGRAPHCTRL1为ActiveX控件ID,本段程序的作用是在用户改变容器对话框的大小时重绘控件,从而达到控件缩放的目的。
3结论
从上面的使用步骤中可以看出该控件简单易用而且功能强大,但也有不足之处,主要是当数据量很大时,绘图速度明显变慢,解决办法之一就是将数据处理后再交给控件绘图,但考虑到要支持图形的移动、缩放和鼠标读数,必须由控件将这些事件通知容器程序,但目前该控件尚未提供这些事件,因此需作改进。如果不需要处理海量数据的显示则此控件是最佳选择。总之,ActiveX控件以其强大的功能和简单易用的特性在数据可视化方面将大有作为。
参考文献
[1]2D Graph ActiveX Control,[EB/OL].http://www.codeproject.com.
[2][美]Dale Rogerson。COM技术内幕:微软组件对象模型[M].杨秀章译.北京:清华大学出版社,1998,12.
ActiveX控件 篇5
随着现代教育技术在中职学校的推进和发展,多媒体技术在课堂教学中已得到广泛应用,所谓多媒体技术是指利用计算机综合处理多种媒体信息——文本、图形、图像、声音、视频等,使多种信息建立逻辑连接,集成为一个具有交互性的系统,多媒体技术的核心特征为集成性、交互性。通过多种感官刺激,改变了传统教学模式,更利于学生接受所学课程内容。[1]
Power Point是Microsoft Office软件包组件之一,是可视化演示文稿制作工具,利用该软件可以实现将多种媒体信息有机地结合在一起,因其操作简单、制作周期短、课堂教学过程中可以实现多显示器分别显示不同页面、方便调整教学内容等优势已经成为教师制作课件的首选软件。[2]但是大多数教师在制作课件时只用到了Power Point的基本演示功能,很少用到它的交互功能,如果在Power Point中用VBA编程制作课堂练习,更能使课堂教学变得生动活泼,激发学生的学习兴趣。
二、VBA简介
所谓VBA就是Microsoft Visual Basic的宏语言版 本 ( 用于编写Windows应用程序 ), 它是Visual Basicfor Applications的英文缩 写。将Active X控件插入到幻灯片中,然后用VBA编写程序控制这些Active X控件,从而达到需要的交互效果。本文将介绍一种利用Active X控件和VBA制作交互性课件的一般方法。[3]
三、用VBA制作交互性课件实例介绍
1. 单选题的制作步骤
下面以一个金属材料类单选题为例说明交互性课件制作的步骤:
【例】金属材料受外力作用产生变形而不破坏的能力称为 _____。
A. 弹性B. 塑性
C. 韧性D. 强度
该例中选项B为正确答案,制作过程如下:
(1) 新建Microsoft Power Point演示文稿 ( 该例中采用Office 2013版本 ),在新建幻灯片中输入题面和选项文字。
如果菜单项中没有“开发工具”选项,可以通过“文件 选项 自定义功能区”,在主选项卡中将“开发工具”选项卡打钩,将其添加到主菜单中,这样使用频繁的项目就可以在主菜单中直接调用 ( 界面如图1所示 )。采用同样的方法也可以在主菜单中新建或者添加其他常用工具选项。
(2) 用鼠标单击控件中的选项按钮 ( 如图2所示 ),然后在幻灯片适当位置拖动鼠标左键,画出选项按钮合适的大小 ( 画出之后也可以适当调整 )。
(3) 设置选项按钮控件属性的方法有两种:1先用鼠标选中选项按钮,然后在控件工具箱中单击属性选项,即可调入属性表。2在选项按钮上单击鼠标右键,调出快捷菜单,选择“属性表”也可实现同样的效果。
在按钮属性中主要设置Caption,Font,Value这3个属性的值 ( 如图3所示 )。Caption属性值用以确定选项按钮旁边显示的文字信息,这里设置为“A.”;Font属性值用以确定按钮旁边的文字的字体和大小;Value属性值用以确定选项按钮起始的默认状态,它有2个值,一个是True( 选项按钮一开始即为选中状态),另一个是False( 选项按钮不处于选中状态 ),一般在设置该属性时将Value值设置为False( 该选项按钮的初始状态为“未选中”)。之后用同样的方法制作“B.”“C.”“D.”三个单选按钮;或者采用复制“A.”按钮,然后修改其属性的方法获得“B.”“C.”“D.”三个单选按钮。接着将这4个选项按钮对齐放置在选择题中相应的4个备选答案文字左边合适的位置。
(3) 为了在VBA编程中区分每一个控件按钮,需要先定义4个选项按钮对象的名称。选中文字为“A.”的选项按钮,在“属性”对话框中的“( 名称 )”属性项后面的文本框中输入But1( 如图3所示 )。按照同样的方法,定义其他3个选项按钮对象的名称分别为But2,But3,But4。
(4) 将控件属性设置完成后,即可编写VBA代码,实现交互过程。步骤为:
1双击幻灯片中命名为“But1”的选项按钮控件,或者单击图4所示的Visual Basic按钮即可进入VBA编程状态。
Private Sub But1_Click()( 该句含义 为: 单击But1选项按钮 )
If But1.Value = True Then text=Magbox(" 选择错误!请再想想! ",vb OKOnly," 显示结果 ")( 该句含义为:如果But1选项按钮为选中状态则出现如图5所示的结果,单击“确定”返回幻灯片播放模式 )
2双击“But2”选项按钮,输入语句如下:
在编程窗 口中已出 现的“Private Sub But2_Click()”和“End Sub”语句之间输入:
If But2.Value = True Then Text=Msg Box(" 选择正确!恭喜你! ", vb OKOnly," 显示结果 ")
3 But3 和 But4 两个选项按钮参照 But1 制作。
代码输入完成以后,关闭Microsoft Visual Basic窗口,返回到幻灯片编辑窗口,播放幻灯片即可出现如图5的画面。
2. 多选题的制作步骤
下面以一个金属材料类多选题为例说明交互性课件制作的步骤:
【例】下列关于回火目的正确的是 _____。
A. 降低内应力B. 使工件获得适当的硬度
C. 增大脆性D. 使淬火组织趋于稳定
该例中选项A,B,D为正确答案。
多选题与单选题制作的不同之处在于:控件按钮和VBA代码。
(1) 在“控件工 具箱”中 选择“复选 框(Check Box)”按钮,其创建方法及属性设置与单选按钮基本相同。名称依次命名为:“BOX1,BOX2,BOX3,BOX4”。
(2) 在“控件工具箱”中选择“命令按钮”,添加到幻灯片上,命令按钮上注明文字为:“查看结果”。因为是多选题,答案有多个,所以要书写多个条件,条件之间用and连接,表示同时满足这几个条件,例如A、B、D选项是正确的,则需要输入如下语句:
If Check Box1.Value=True And Check Box2.Value=True And Check Box4.Value=True Then
给出正确的提示信息同单选题
else
给出错误的提示信息同单选题
end if
3. 完善课件功能
(1) 在幻灯片适当的地方插入一命令按钮,将其Caption属性修改为“重新选择”。
(2) 双击“重新 选择”按钮, 在编辑窗 口中的“Private Sub Command Button2_Click()”和“End Sub”代码之间输入:
Box1.Value = False
Box2.Value = False
Box3.Value = False
Box4.Value = False
(3) 课件播放效果如图6所示。
四、结束语
至此,VBA交互课件制作完毕,但是,要想在其他电脑上正常播放,还要保存为“启用宏的演示文稿”,或者降低宏安全性。
ActiveX控件 篇6
关键词:ActiveX,SDK,流媒体
0前言
流媒体是一种在网络上在线播放多媒体的技术。由于其边下载边播放的特性,缩短了用户初始等待的延迟,但其数据也需要采用流式传输,具有较高的实时需求,因此比起一般的本地播放处理更为复杂。客户端是流媒体系统中一个基本的组成部分,一般是一个具有网络通信功能的播放器,而对于流媒体数据,采用在HTML页面汇总内嵌Active X控件直接对应用服务器进行访问,可以提高访问的实时性。
1 系统实现原理
1.1 Active X控件
1.1.1 Active X控件简介
Active X是一种技术集合。主要包括服务器端技术和客户端技术,可以使用户能够在浏览器之中看非HTML文档(如Word文档);能够被插入网页或任何称作控件容器库的应用程序之中的对象(如按钮);可以在整个客户区域以框架形式显示文档;能够定制来源于数据库或是一个在服务器上运行的程序的网页内容;可以将处理过程从服务器方移至客户端。
1.1.2 Active X控件原理
Active X控件通常是以动态连接口的形式存在,设计思想是将一个程序嵌入到另一个程序(通常把这个程序叫做容器,例如Web页面)中。通过这种技术可以将一个程序的信息集成到其他的程序之中,方便程序开发,可以是它应用到需要的各种场合之中。
Active X控件的数据输入和函数功能执行都是必须通过容器的,所以在Active X控件和其容器之间必须有一定特定的接口协议,Active X控件一般具备几种性能机制。
属性:Active X控件必须提供属性的名称,通过这项机制,容器可以存取、改变Active X控件的属性参数。
方法:Active X控件需要提供方法的名称和参数,容器通过不同的参数开始改变Active X控件的属性等参数。
事件:这项机制可以通知容器在Active X控件发生的事件,比如鼠标的点击等,然后进行操作来改变属性或是其他。
Active X的目的主要是用来共享程序模块之间的计算功能,生成的一些可以嵌入在其他程序中的一些小程序,通过指定的一些接口来实现程序之间的通信。Active X控件是一个模块化的灵活对象,如果需要在某个应用程序或是Web页面中增加一项功能,无需重写改写程序,编写一个满足需求的Active X控件,然后嵌入到容器中即可实现。
1.2 流媒体介绍
流媒体系统包括音/视频源的编码/解码、存储、流媒体服务器、媒体流传输网络、用户端播放器5个部分(如图1所示),原始音/视频流经过编码和压缩后,形成媒体文件存储,媒体服务器根据用户的请求把媒体文件传递到客户端的媒体播放器。
流媒体服务器在首次运行时,必须配置视频路径,设置文件点播的路径之后,会显示出所包含的视频文件,单纯的视频文件并不能通过流媒体客户端访问,必须生成视频索引文件之后才能访问。运用流媒体服务器生成视频索引文件,然后重启服务器之后即完成了流媒体服务器的设置。
流媒体客户端用来访问存储在服务器上的视频数据,通过设置服务器的IP和物理路径即可对视频数据进行访问。流媒体客户端为MFC程序,不能以Web方式访问,通过流媒体客户端的SDK开发出内嵌在Web中的Active X控件,即可解决这个问题。
2 流媒体播放系统Active X控件开发
根据所需的功能,我们所设计的流媒体客户端Active X控件需要满足设定播放Url、播放类型、播放、拖动播放、暂停和停止的功能。对应的我们需要调用提供的SDK的一些接口。
2.1 流媒体客户端SDK接口
流媒体SDK对和建立流媒体会话相关的底层命令数据和流媒体的传输过程进行了封装,对上层应用屏蔽了具体的传输流程。
Client.dll动态链接库导出的API函数在头文件Client.h的中定义,具体如下。
(1)CLIENT_API int__stdcall Init Stream Client Lib(void)
作用:初始化。该函数需要在窗口程序初始化时调用。
返回值:成功返回0,失败返回-1。
(2)CLIENT_API int__stdcall Fini Stream Client Lib(void)
作用:反初始化。该函数需要在窗口程序关闭时时调用。
返回值:成功返回0,失败返回-1。
(3)CLIENT_API int__stdcall HIKS_Open URL(HSESSION h Session,const char*psz URL,int iusrdata)
作用:根据URL,连接服务器。h Session是Player的标示,应该设置为HIKS_Create Player成功返回的新建Player的标示,psz URL即为服务器的地址,iusrdata为用户数据。
返回值:成功返回1,失败返回-1。
(4)CLIENT_API int__stdcall HIKS_Play(HSESSION h Session)
作用:播放。h Session是Player的标示。
返回值:成功返回1,失败返回-1。
(5)CLIENT_API int__stdcall HIKS_Random Play(HSESSIONh Session,unsigned long timepos)
作用:随机位置播放,用于视频的前后拖动。h Session是Player的标示。
返回值:成功返回1,失败返回-1。
(6)CLIENT_API int__stdcall HIKS_Pause(HSESSION h Session)
作用:暂停播放。h Session是Player的标示。
返回值:成功返回1,失败返回-1。
(7)CLIENT_API int__stdcall HIKS_Resume(HSESSION h Session)
作用:恢复播放。h Session是Player的标示。
返回值:成功返回1,失败返回-1。
(8)CLIENT_API int__stdcall HIKS_Stop(HSESSION h Session)
作用:停止播放,销毁Player。h Session是Player的标示。在播放失败或正在播放需要停止的请况下调用,调用了该函数后就不需要再调用HIKS_Destroy函数了。
返回值:成功返回0,失败返回-1。
2.2 Active X控件开发步骤
在Visual Stdio 2010编程环境中,新建一个“MFC Active X控件”的项目,项目名为“Stream Media Active X”,在项目的创建过程中会显示出控件类型ID为“STREAMMEDIAACTIV.Stream Media Activ Ctrl.1”。项目创建完成之后会创建三个类。
(1)CStream Media Active XApp
这个类继承于COle Control Module。它是用于派生OLE控件模块对象的基类。该类提供成员函数初始化控件模块。每个使用Microsoft基础类的OLE控件只能包含一个从COle Control Module派生的对象。当其它C++全局对象创建的同时创建该对象。将COle Control Module对象声明为全局级。
(2)CStream Media Active XCtrl
这个类继承于COle Control,它由CWnd类派生,继承了Windows窗口对象的所有功能,并加上了OLE独有的功能,例如事件触发、支持方法和特性等。
(3)CStream Media Active XProp Page
这个类继承于COle Property Page类,它是以类似于对话框的图形化界面来显示定制控件的属性。
在项目工程中引用client.dll这个动态链接库,并在头文件中加入client.h这个头文件。在Stream Media Active XCtrl.cpp文件的调度映射的代码段中,添加我们可以用于外部调用的属性和方法,生成代码段如下:
BEGIN_DISPATCH_MAP(CStream Media Active XCtrl,COle Control)
DISP_FUNCTION_ID(CStream Media Active XCtrl,"Set Param",dispid Set Param,Set Param,VT_I4,VTS_BSTR VTS_I4)
DISP_FUNCTION_ID(CStream Media Active XCtrl,"Play",dispid Play,Play,VT_BOOL,VTS_NONE)
DISP_FUNCTION_ID(CStream Media Active XCtrl,"Pause",dispid Pause,Pause,VT_BOOL,VTS_NONE)
DISP_FUNCTION_ID(CStream Media Active XCtrl,"Stop",dispid Stop,Stop,VT_BOOL,VTS_NONE)
END_DISPATCH_MAP()
对应的在CStream Media Active XCtrl中这个类添加相应的方法,添加一个Dialog之后,调用海康的SDK给定的一些接口,方法如下:
(1)LONG Set Param(LPCTSTR transurl,LONGtranstype);
调用接口:Init Stream Client Lib、HIKS_Open URL。
(2)VARIANT_BOOL Play(void);
调用接口:HIKS_Play、HIKS_Random Play、HIKS_Resume。
(3)VARIANT_BOOL Pause(void);
调用接口:HIKS_Pause。
(4)VARIANT_BOOL Stop(void);
调用接口:HIKS_Stop、Fini Stream Client Lib。
3 结论
Active X控件的可复用性强,而且在嵌入容器之后,客户端将Active X控件下载到本地之后,进行注册,这样在网页中就可以调用所需要的Active X控件。既方便用户在不同开发环境下的调用,又减少了直接在Web应用程序中直接编写流媒体客户端的代码量。在系统的架构方面,基于BS架构的这种Web应用程序中运用编写Active X流媒体客户端比传统的CS架构中客户端用户的友好性方面又有了较大的提高,提高了流媒体数据访问的实时性。
参考文献
[1]邹羚.多流媒体播放器ActiveX控件开发,《微型机与应用》,2010年14期.
ActiveX控件 篇7
关键词:Authorware,VB,ActiveX控件
目前,Authorware已成为课件制作、远程教育和网络培训领域中的标准开发工具,全球数千万个从事教育训练、教学、多媒体开发及网页设计者,都采用Authorware来创作与发行交互式多媒体和学习的应用程序。但Authorware主要是面向非程序员的多媒体创作工具,其数据处理能力不强,对多媒体文件类型的支持不够全面,不具备网络开发的功能等,这就需要借助VB等其他编程软件,扩展Authorware的功能。
VB作为Microsoft公司开发的一个可视化编程工具,它的网络编程功能是比较强的,可以通过VB编程语言来创建相关ActiveX控件,然后在Authorware中调用就可以了。
1 Active X控件的创建及应用
Authorware与VB的数据通信可以通过ActiveX技术来实现,ActiveX是OLE与OCX技术的结合,提供了相当数量的工具控件。开发人员利用ActiveX控件,使Authorware可以实现许多扩展的功能,从而制作出更完美的多媒体软件。其设计和应用步骤如下:
(1)创建Active X控件:在Visual Basic开发环境中,创建一个ActiveX Control类型的工程,根据程序功能要求,进行界面内容的设计及代码的添加,并保存为OCX文件。
(2)注册新创建的OCX文件:将新创建的OCX文件复制到C:WindowsSystem32目录下;进入DOS命令提示符状态,并进入C:WindowsSystem32目录;输入Regsvr32ocx_name.ocx,系统提示“ocx_name.ocx中的DllRegisterServer成功”,表示注册成功。
(3)在Authorware中设计程序,并调用创建的OCX控件:在Authorware中,利用菜单“插入”→“控件”→“ActiveX…”选项,来插入ActiveX控件,并进行其他相关功能的设置。
2 应用实例与技巧
2.1 网络浏览器功能的实现
2.1.1 创建ActiveX控件
(1)打开VB,创建一个新的工程,类型选择ActiveX控件,将工程名改为“浏览器”。
(2)加载Microsoft Internet Controls和Microsoft Internet Transfer Control 6.0(sp6)部件,然后在窗体上新建下列控件,如表1所示。
(3)设置3个按钮部件的程序代码:
(4)点击“文件”菜单中的"生成Netbrowser.ocx"菜单项,并保存为Netbrowser.ocx,然后测试其是否正确。
2.1.2 注册新建的Netbrowser.ocx
复制Netbrowser.ocx到C:WindowsSystem32目录下,并进入DOS命令提示符状态,进行注册。
2.1.3 设计程序并调用OCX控件
(1)添加一个交互图标,交互类型设置为菜单响应。
(2)单击菜单“插入”→“控件”→“ActiveX…”选项,在弹出对话框中选择新建的“Netbrowser.browser”控件,流程图如图1所示。
(3)运行程序,选择菜单项“网络功能”→“浏览器”,运行ActiveX插件,按Ctrl+P暂停程序,调整控件的大小和位置。
2.1.4 程序测试
运行测试程序,在“搜索”下输入关键字后确定,在百度中搜索;在“链接”下输入关键字后确定,进入相应网页;点击“显示”,显示相应的HTML代码。最终界面如图2所示。
2.2 电子邮件收发功能的实现
2.2.1 在VB中创建ActiveX控件
(1)打开VB,创建一个新的工程,类型选择ActiveX控件,将工程名改为“电子邮件收发工具”。
(2)加载Microsoft MAPI Control 6.0部件,然后在窗体上新建下列控件,如表2所示。
(3)设置MAPIS1控件的各项属性:
(4)设置三个按钮控件的程序代码:
(5)生成“Email_tools.ocx”菜单项,并进行测试。
2.2.2 注册新建的Email_tools.ocx
复制Email_tools.ocx到C:WindowsSystem32目录下,并进入DOS命令提示符状态,进行注册。
2.2.3 在Authorware中的功能实现
(1)单击菜单“插入”→“控件”→“ActiveX…”选项,在弹出对话框中选择新建的“Email_tools.browser”控件,流程图如图3所示。
(2)运行程序中的ActiveX插件,按“Ctrl+P”暂停程序,调整控件的大小和位置。
(3)程序完成,运行测试程序,点击“登录邮箱”,登录到Email邮箱;点击“发送邮件”,可以将邮件发送到指定地址;点击“接收邮件”,可以将邮件下载到本地目录。最终界面如图4所示。
3 结语
在Authorware中运用ActiveX控件已经是软件开发过程中非常重要的一种手段,而ActiveX控件可以通过VB、VC、Delphii等可视化编程语言来实现,通过ActiveX这个途径,可以实现Authorware与其他编程语言的通信。用好这一工具不但可以使制作的多媒体作品锦上添花,而且起到事半功倍的效果。
参考文献
[1]袁海东.Authorware5.1开发实例与技巧[M].北京:电子工业出版社,2001.
[2]易智勇.Authorware多媒体制作基础教程[M].北京:人民邮电出版社,2003.
[3]赵明友.用Visual Basic6.0为Authorware开发ActiveX控件[J].重庆:渝西学院学报,2003,(2):5-9.
ActiveX控件 篇8
随着“数字化校园”和“无纸化办公”工作的不断推进,高校的信息化水平有了大幅的步提升。大部分高校在网络平台的的基础上,引进了诸多办公应用系统,如办公自动化系统,工资管理系统,学籍管理系统,校讯通系统,继续教育管理系统以及相关的FTP服务等等以满足不同的教育教学需求。然而每种应用系统都需要进行身份的识别认证并且对不同身份所拥有的操作权限进行授权,各个系统都有单独的的用户名和密码,用户在不同系统中的用户名、密码和权限都各自独立,互不相关,在访问不同应用系统时不得不多次进行身份认证和确认,使校园的各个系统形成了一个个“信息孤岛”,而且由于校园网内教师们在信息技术应用水平上的差异性和局限性,在使用这些应用系统时十分不便,大多数用户会选择简单易记的用户名和密码,甚至采用系统初始状态的原始密码,在带来信息安全的带来威胁的同时也,也大大的降低了系统的安全性。
分析其原因,由于各个系统间没有联系,采用分散的用户管理与认证造成的,基于提高信息平台可用性和安全性的角度考虑,我们设计出一种更为高效、安全的网络认证机制,以实现“单点登录、多点漫游”的方式,使用户能在最初访问校园网络系统时一次身份验证,对所有被授权的多系统网络资源进行无缝的访问,实现单点登录(Single Sign On,简称SSO)。在搭建单点登录系统的时,我们要充分考虑当前已有系统的使用频率和使用习惯,而随着“无纸化办公”的推进,绝大多数高校都搭建了办公自动化平台(Office Automation,简称OA),办公自动化平台无疑是高校内使用频率最高的网络系统,同时高校的OA系统采用的是结构是一个行政结构鲜明的管理模式,基于OA系统的单点登录系统无疑是校园网单点登录系统的最佳平台。本文将结合梦龙软件公司的LinkWorks协同办公系统,设计基于OA系统的单点登录系统。
1 LinkWorks协同办公系统
LinkWorks是梦龙科技根据企业信息化的多样性、灵活性和复杂性,推出的集文档管理、工作管理、沟通管理、网络办公、信息发布等应用为一体的企业级协同工作平台。它不仅提供的是强大的办公自动化功能,更重要的是,它为企业构筑了一个信息化的基础平台。LinkWorks提供了很多只有平台级产品才具备的基础服务,如统一用户管理、通用权限控制、通用流程驱动、文件传输服务、即时通讯服务等。利用这些功能强大的基础服务,用户可以很容易地开发出针对实际业务的应用,它实现认证(Authentication)、授权(Authorization)和审计(Audit)的统一。3A统一是组织安全设施的基础,能对用户身份和内容安全进行有效的保护和控制。
2 ACTIVEX控件
ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。ActiveX控件是一种可重用的软件组件,通过使用ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。开发控件可以使用各种编程语言,ActiveX控件一旦被开发出来,设计和开发人员就可以把它当作预装配组件,用于开发客户程序。ActiveX控件是ActiveX技术中最基本和最重要的成员,它通常是动态链接库或OCX控件,可用于所有支持COM规范的容器中,或者为Internet控件嵌入到Web页面中。ActiveX控件分为客户端控件和服务器端控件,本方案采取的为客户端架构。
本文提出的单点登录系统主要运用了ActiveX客户端控件,将单点登录系统的架构转换为B/S+C/S架构。采用单点登录一般情况下为局域网环境下实现的,在局域网办公环境下,基本上所有主机都安装办公OA系统,那么这也为基于办公OA单点登录系统的实现提供了环境保证,校园网多系统单点登录系统的设计应遵循如下原则:(1)WEB环境:该模型的设计是为了解决单点登录的问题。即用户端使用通用的浏览器,即可实现一键式登录认证,可以实现跨域的单点认证登录。(2)方便性:使用该模型能改善以前独立登录带来的问题,同时为了不给用户增加额外的负担,只要用户安装办公OA系统的插件,系统可自动检测当前用户的状态,如未安装登录插件,用户也可以采用浏览器的登录窗口提交数据,即既可以实现C/S架构登录,也可以现实B/S架构实现登录。(3)安全性:该模型在设计过程中,既为用户带来了巨大的方便性,又考虑到了安全性。既保证了用户的秘密信息不被非法窃取,同时也保证了合法用户难以被冒充。
3 单点登录系统的模型设计
本文设计了一种基于办公OA系统单点登录系统模型,客户端只需下载并安装该ActiveX控件,该系统运用了目前比较流行的ActiveX控件技术,ActiveX控件可以从当前运行的OA系统的即时通讯平台中,调用当前用户的用户信息及用户状态,然后通过从将提交的用户信息提交给单点登录系统,单点登录系统,根据用户访问的目的网站,加载当前用户的权限信息,并在目的的网站中建立相应的session或者cookie标志,以实现网站的单点登录。我们在设计校园网单点登录系统的过程中,利用协同办公系统提供的统一信息门户应用模块的入口,整合新的信息资源,通过接口为基础服务及业务应用提供当前用户的身份信息,通过对当前用户的身份确认,然后从数据库中调用用户的网站权限,根据用户的相关权限,网站调用相关的信息和功能,从而实现单点登录。如果调用的即时通讯软件失败,则认为当前用户没有登录,然后在网站的上显示登录界面窗口。其具体实现步骤如下:
3.1 初始化基于办公OA系统的单点登录权限库
在此权限库中存储的有网站的ID,名称、网址及网站对应访问控制权限的COOKIE值,在用户权限库中对应相应的用户ID,其可访问的网站的ID及其访问控制权限等相关信息,管理员可以通过后台管理添加设置网站的名称,网址及网站的等级权限值,授权类型。并为该网站添加访问用户及访问权限等信息,初步完成单点登录的权限库。
3.2 B/S模式认证的登录方式
因为该登录系统为C/S+B/S架构的单点登录系统,所以用户在未安装ActiveX控件的情况下也可以通过网页进行登录,在登录窗口提交用户的用户名和密码等数据至WEB服务器,WEB服务器将客户端提交数据提交到基于OA办公平台的单点登录认证接口,单点登录系统确认当前用户后,从数据库中调用当前用户的访问权限,WEB服务器根据当前的权限生成对应的COOKIE值,在客户端访问B/S单点登录认证,C/S模式单点登录的实现。为确保单点登录的便捷性,本方案突破性的在客户端安装ACTIVX控件,当用户打开浏览器输入访问的界面时,浏览器在执行代码过程中会调用相应的ActiveX控件,该控件可以与客户端计算机中内存中运行的OA系统的即时通平台实现数据通信,从OA系统的即时通信进程中获取当前用户的ID,获得用户的ID就相当于已经实现了用户身份的认证,然后将用户的ID提交至WEB服务器,WEB服务器从单点登录平台调用该用户ID对应的访问的网站和权限,然后找当前用户的网址和权限调用对应的应用,从而实现了单点登录。
系统通过将数据认证相关的功能划分成一些以Web服务形式独立存在的模块,发挥了Web服务的松耦合和动态绑定的优势,降低了系统各模块之间的耦合度,使得系统具有如下的优点:(1)单点登录,多点漫游。使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,保证了用户密码的私有性,更重要的是减少了管理员的密码重置工作降低了安全的风险和管理的消耗。(2)认证数据源可动态接入。在传统的单点登录中,必须手动输入数据源,而在该系统中,对通过IE控件来实现对C/S系统客户端的单点登录,已经登录办公OA平台的用户无需输入用户名、密码,即可访问所有被授权的C/S系统资源。无论对于B/S和C/S结构的应用系统,实现单点登录的功能时,后台应用系统无需任何修改,在面向服务的架构中,服务和服务之间,程序和程序之间的通讯大量存在,服务之间的安全认证是面向服务架构应用的难点之一,应此建立“单点登录”的系统体系能够大大简化面向服务架构的安全问题,提高服务之间的合作效率。(3)系统可扩展性强。基于ActiveX控件的单点登录系统可以按照用户需求定义验证的类型为session型还是cookie型。并且根据网站的类型调取相应的认证标识,并通过认证标识调用对应的应用,在添加新的应用认证系统时,管理员只需增加cookie或者session值和网站地址,就可以方面的进行扩展性应用。
4 结语
文中提出了一种基于C/S+B/S架构的基于OA系统的ActiveX控件单点登录模型,用户不再需要记忆每个应用的认证信息,只需登录一次,就可以访问所有授权的应用,提高了工作效率。本单点登录系统可以实现跨平台、以跨域以及跨认证类型的单点登录解决方案,本方案正了实现单点登录、全网访问,方便用户的使用过程。系统采用ActiveX控件技术,使各系统之间耦合度低,整个系统的实施过程安全平滑。统一了单点登录服务器到应用服务器的用户认证信息访问标准,ActiveX控件由Web服务器进行统一的管理和发布,降低了客户端维护和更新费用。为将来更多应用系统提供了统一的单点登录框架。
摘要:随着信息技术的广泛应用,用户在进行业务处理时可能需要同时访问多个业务系统。针对目前校园网内部各应用系统分散式认证的种种弊端,该文章利用activex控件设计出提出一个基于办公OA系统的单点登录系统设计方案,在单点登录原理的基础上,利用activex控件认证机制来实现单点登录系统,实现“一点登录、多点漫游”。
关键词:单点登录,ActiveX控件,办公自动化,SSO
参考文献
[1]李香菊.ActiveX控件在单点登录系统中的应用[J].计算机应用.2006-12-30.
[2]胡晨骏.单点登录系统的设计与实现[J].软件导刊.2010-07-30.
[3]李馥娟.基于Cookies的单点登录系统的设计与实现[J].信息化研究.2009-08-20.
[4]杨荣华.基于SOA的单点登录系统研究与设计[J].福建工程学院学报.2008-12-10.
[5]曹世华.校园网络单点登录系统应用研究[J].计算机系统应用.2008-04-15.
ActiveX控件 篇9
关键词:ActiveX,C++.net 2010,MFC
随着网络的飞速发展, 大量的应用都做成了B/S结构, 而B/S结构中, 浏览器权限有限, 功能受到限制。为获得更强的功能, 在微软技术下, 采用Active X控件技术是比较好的选择。但是在开发Active X控件的过程中由于开发环境的不同, 客户端的不同等多种因素的影响, 使得开发Active X web控件成功的可能性大大降低, 在开发过程及使用过程众多因素相互影响, 只要有一个因素不满足开发或使用条件就可能导到控件失效, 表现在网页上原本应该出现控件的地方出一个红叉叉。本文主要分析网页上, 控件位置上出现红叉叉的原因并给出解决方法, 使开发出来的web控件能正常使用。
1 一个简单Web控件的开发过程及注意事项
当前Web active X控件开发最权威的资料要数文献[1]了。但这篇文章已经部分过时, 因为这篇文章采用的开发工具是Visual Studio.net 2005, 而当前主流的开发工具已经是Visual Studio.net 2010了。本文写作是基于Visual Studio.net 2010的, 文献[1]的大多数过程在Visual Studio.net 2010中多数仍然适用, 但需要作稍许修改。过程如下:
⑴下载文献[1]中附带的示例代码。
⑵按文献[1]中的[Creating an Active X Control]中所有步骤建立一个MFC Active X工程。需要再增加两个步骤, [1]选择项目, 属性, 配置管理器, 将解决方案的配置从Debug改为Release, 项目配置也从Debug改为Release。[2]选择项目, 属性。导航到C/C++=>代码生成, 将属性运行库多线程DLL (/MD) , 改为多线程 (/MT) 。如果此项不改在没有安装Visual Studio.net 2010的机器上可能会出现红叉叉。
⑶文献[1]中的[Adding Support for Animated GIF]的步骤已经时, 把示例代码解压, 找到其中的Picture Ex.cpp、Picture Ex.h、Processing Progress Bar.gif等三个文件, 并将这三个文件复制到步骤⑵所建工程的程序文件目录中。不需要改名, 直接导入Processing Progress Bar.gif。在资源视图, 右击资源文件My Active X.rc, 并选择Add Resource.在Add Resource对话框中, 按Import按钮, 然后选择文件Processing Progress Bar.gif.在Custom Resource Type对话框中, 输入“GIF”作为资源类型, 然后单击OK.这个操作将导入GIF映象文件到工程中, 在资源视图中, 你将看到此文件列在GIF项下面。导航到此项目上, 将此控件的ID从默认的IDR_GIF1改成IDR_PROGRESSBAR。
⑷文献[1]中的[Adding Dialog for Progress Bar Graphic]的步骤可以照做。
⑸文献[1]中的[Adding Support Code]的步骤可以照做。
⑹文献[1]中的[Building a Signed Active X Control]的步骤可做参考。但其中myactivex.rc中的OLESelf Register值已经自动添加好了, 不需要另外手动操作。可额外参考文献[2]及文献[3]。
⑺文献[1]中的[B uildin g a S a fe Active X Control]的步骤可以照做。但其中步骤3中函数STDAPI Dll Unregister Server (void) 代码位置需要改动, 改为以下代码。
⑻文献[1]中的[Active X Control Properties, Methods, and Events]的步骤可以照做, 但不要立即照做, 可以在步骤1-7开发完毕, 并且所开发控件经过适当配置, 可以在网页上运行后, 再做此步骤。
经过上述步骤, 一个Web控件就已经开发好的。但此时, 你如果将此web控件嵌入到网页代码中, 很可能会得到一个红叉叉。下面我们将解决这个问题, 去掉红叉叉, 显示我们想要的控件样子。
2 影响Web控件正常显示的证书因素
如果你为控件及CAB压缩文件签名的证书是按文献[2]或文献[3]中的步骤自己生成的测试证书, 那么控件签名后是无法顺利在客户端运行的。如果你一直按确定你得到的只会是一个红叉叉。
要显示控件, 先点开提示Active X控件已经被阻止的提示信息, 点开后单击“安装Active X控件”, 然后就开始安装控件。接着又会弹出无法验证发行者的安全警告。这时单击未知发行者上的超链, 看数字签名的详细信息, 再单击安装证书, 并把证书安装到受信任的根证书颁发机构。再一路确定, 再刷新网页, 如果你前面做法正确, 有50%的可能性, 你就可以看到控件正常显示了。
这另外50%的可能性仍然是红叉叉, 或一片空白。
3 影响Web控件正常显示的浏览器因素
这另外50%不能正常显示的可能与浏览的类型有关。Visual Studio.net 2010开发的基于MFC的Active X控件只能用在IE内核的浏览器上, 无法用在火狐等其它内核的浏览器上。如果用其它内核的浏览器, 你会什么也看不到。即使都是使用IE浏览器, 32位与64位也是不可通用的。
如果你开发的32位的Web控件, 就只能在32位的IE浏览器上运行, 在64位的浏览器上只能得到一个红叉叉。反之你如果开发的是64位的web控件, 就只能在64位的IE浏览器上运行, 在32位的浏览器上也只能得到一个红叉叉。
想要在两种浏览器上都能正常运行, 只有开发出32位与64位的两种控件, 然后在网页上用Javascript代码判断浏览器的类型, 然后选择其中符合的一个控件显示出来并激活。
4 影响Web控件正常显示的其它因素
影响Web控件正常显示的其它因素主要是开发过程中不正确的设置。最典型的错误是文献[3]中所表述出来的错误。在项目=>属性=>配置属性=>常规=>配置类型属性中, Active X控件只能设为动态库 (.dll) , 不能设为静态库 (.lib) 。而文献[3]中, 错误地认为可以设为静态库 (.lib) , 按照文献[3]的做法做, 直接导致控件无法正常显示, 导致出现红叉叉。而文献[3]的流毒甚广, 有很多网站转载, 导致许多初学者长时间无法走出其陷阱。
所以, 文献[3]在建立证书进行代码签名等步骤是有参考价值的, 而在其它方面参考价值不大。
5 结语
文章着重分析在开发基于MFC与Active X技术的web控件的开发过程中所出现的种种问题, 并给出了解决方法, 以开发出可用的Active X web控件。Active Web控件编程初学者通过对本文的阅读可以避免在控件开发过程中走种种弯路, 提高控件开发技术的学习效率。
参考文献
[1]David Marcionek, A Complete Active X Web Control Tutorial, [DB/OL], 2006, http://www.codeproject.com/Articles/14533/A-Complete-Active X-Web-Control-Tutorial.
[2]宋继清.Active X控件 (.ocx.cab..) 数字签名全过程, [DB/OL], 2011.http://w w w.cnblogs.co m/rushoooooo/archive/2011/06/22/2087552.html.
相关文章:
MFC控件关联变量小结01-23
自定义控件基础知识01-23
网银安全控件安装说明01-23
学校班主任工作经验交流总结01-23
我眼中的黑色作文01-23
用户控件设计01-23
结肠癌患者01-23
数据显示控件01-23
数控编程说课稿01-23
2010四川省考面试经典真题解析系列01-23