CN104951394A - 在组态运行时捕获ActiveX控件异常的系统和方法 - Google Patents

在组态运行时捕获ActiveX控件异常的系统和方法 Download PDF

Info

Publication number
CN104951394A
CN104951394A CN201410116418.9A CN201410116418A CN104951394A CN 104951394 A CN104951394 A CN 104951394A CN 201410116418 A CN201410116418 A CN 201410116418A CN 104951394 A CN104951394 A CN 104951394A
Authority
CN
China
Prior art keywords
activex
exception
configuration
activex control
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410116418.9A
Other languages
English (en)
Other versions
CN104951394B (zh
Inventor
朱从锋
李晓浩
顾慧
范昀
冯隽永
吴晓宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Baosight Software Co Ltd
Original Assignee
Shanghai Baosight Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Baosight Software Co Ltd filed Critical Shanghai Baosight Software Co Ltd
Priority to CN201410116418.9A priority Critical patent/CN104951394B/zh
Publication of CN104951394A publication Critical patent/CN104951394A/zh
Application granted granted Critical
Publication of CN104951394B publication Critical patent/CN104951394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种在组态运行时捕获ActiveX控件异常的系统,包括组态系统、组态系统异常管理模块、组态异常处理模块。本发明可以捕获到嵌入到组态中的ActiveX控件发生的异常,并对异常进行处理,保证组态页面中其它项的正常运行。本发明保证了嵌入系统中的任何一个ActiveX控件出错时不会对系统造成不可预料的错误。完全避免数据丢失、中断控制过程以及由此所造成的损失。在任何需要嵌入ActiveX控件的产品或项目中,都可以应用本发明的成果。

Description

在组态运行时捕获ActiveX控件异常的系统和方法
技术领域
本发明涉及综合监控领域,具体地,涉及在组态运行时捕获ActiveX控件异常的系统和方法。
背景技术
随着硬件、通信、计算机技术的迅速发展,桥梁隧道、轨道交通等基础设施的建设也随之向前推动,建设一个高效、先进、智能化和信息化的监控网络,成为综合监控系统面临的一大挑战。在实施这样的综合监控网络项目时,组态是综合监控系统人机界面展示的核心。
“组态(configuration)”的概念是伴随着分布式控制系统(distributedcontrol system,DCS)的出现才开始被广大的生产过程自动化技术人员所熟知的。每一套DCS都是比较通用的控制系统,可以应用到很多领域,为了使用户在不需要编写程序的情况下便可生成适合自己需求的应用系统,每个DCS厂商在DCS中都预装了系统软件和应用软件,其中的应用软件实际上就是组态软件,但一直没有人给出明确的定义,只是将使用这种应用软件设计生成(定制)目标应用系统的过程称为“组态(configure)”或“做组态”。相应地,这种应用软件和生成的目标应用系统一道被称为“组态软件”,有时也称为“监控组态软件”。监控组态软件是面向过程监控与数据采集(Supervisory Control And Data Acquisition,SCADA)的软件平台,具有丰富的设置项目。监控组态软件最早出现时,人机图形界面(HumanMachine Interface,HMI)是其主要内涵。随着它的快速发展,实时数据库、实时控制、通信及联网、开放数据接口和对I/O设备的广泛支持己经成为它的主要内容。
ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自主的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。
OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。现在COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。
组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。
ActiveX控件是一种可重用的软件组件,通过使用ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如,动画控件可用来向网页中加入动画特性。开发控件可以使用各种编程语言,如C,C++,下一代的Microsoft Visual Basic&reg,以及微软公司的Visual Java开发环境MicrosoftVisual J++。ActiveX控件一旦被开发出来,设计和开发人员就可以把它当作预装配组件,用于开发客户程序。以此种方式使用ActiveX控件,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。
在组态系统中,为满足复杂的客户端展示需求,需要在组态系统提供嵌入ActiveX控件的功能,可以嵌入自己开发或第三方的各类ActiveX控件。
在工程使用中,会出现在组态运行中的任何一个ActiveX控件异常,就会导致整个组态崩溃。本发明的目的是能够捕获到这些异常,给用户一些提示或记录日志,而不使整个组态崩溃,提高产品稳定性。
经检索,发现相关文献(申请号:EP0965923,专利名称:System and methodfor secure software component containment),该相关文献提供了一种ActiveX控件异常的捕获及处理方法,但与本发明相比,有2点本发明能够实现,但该发明无法实现:(1)ActiveX第一层界面异常捕获;(2)OCX控件在派生线程中抛出的异常的捕获。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种在组态运行时捕获ActiveX控件异常的系统和方法。
根据本发明提供的一种在组态运行时捕获ActiveX控件异常的系统,包括如下装置:
组态系统,用于组态页面的展示,ActiveX控件作为一个画面元素嵌入到组态页面中;
组态系统异常管理模块,用于将所有的系统可能抛出的异常映射成组态系统自定义的一个异常类型,当系统抛出异常时,转换成该自定义的异常类型进行处理;
组态异常处理模块,用于在组态系统进程的消息链中嵌入异常捕获机制,负责捕获并处理ActiveX控件中进行消息处理时引发的异常;
进一步地,所述组态系统,在加载每个ActiveX控件时,在组态页面中自动创建一个ActiveX容器,在ActiveX容器中创建ActiveX控件,由该ActiveX容器负责捕获并处理ActiveX控件加载和卸载时引发的异常;
所述组态异常处理模块,在组态系统进程调用ActiveX控件方法的触发机制中嵌入异常捕获机制,负责捕获并处理ActiveX控件方法被组态系统调用时引发的异常。
优选地,所述ActiveX容器在卸载AcitveX控件时,首先ActiveX容器去卸载其加载的ActiveX控件,如果在ActiveX卸载时发生异常,ActiveX容器会捕获到异常并进行处理。
优选地,所述在组态系统进程的消息链中嵌入异常捕获机制,具体为:先截获消息,并传递给后续处理环节,在后续处理环节中发生的系统异常,被映射成组态系统自定义异常类型,被异常捕获机制捕获并处理。
优选地,所述在组态系统进程调用ActiveX控件方法的触发机制中嵌入异常捕获机制,具体为:先截获ActiveX控件方法调用的消息,并传递给实际被调用的ActiveX控件,在ActiveX空间方法调用中发生的异常,被映射成组态系统自定义异常类型,被异常捕获机制捕获并处理。
优选地,打开画面异常的处理流程具体如下:
a)接收用户打开画面文件的指令;
b)开始逐个读取画面对象,逐个创建;
c)若对象是普通对象,则按照普通对象处理,直接创建到组态画面中;
d)若对象是ActiveX控件,则为该ActiveX控件自动创建一个ActiveX容器,并启动ActiveX创建异常处理;
e)在ActiveX容器中创建真正的ActiveX控件;
f)若创建ActiveX控件时发生异常,ActiveX容器捕获到该异常,弹出提示信息给用户,结束画面创建,关闭该画面;
g)若控件创建无异常,继续读取、创建其它对象,直到所有对象创建完毕;然后开始画面运行。
优选地,关闭画面的异常处理流程具体如下:
a)接收用户关闭某一画面的指令;
b)开始卸载画面对象,若是普通对象,则按照普通对象的卸载机制卸载;
c)若是ActiveX控件,则启动ActiveX控件卸载异常处理;
d)开始卸载ActiveX控件,若发生异常,则记录日志,然后卸载ActiveX容器;若无异常,则直接卸载ActiveX容器;
e)继续其它对象的卸载,直到所有对象卸载完毕,关闭组态画面。
优选地,定时的异常处理流程具体如下:
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,所包含的ActiveX控件是否启动了定时任务;
c)若无ActiveX控件的定时任务,则按照正常逻辑运行画面;
d)若包含了ActiveX控件的定时任务,则启动ActiveX定时异常处理;
e)检测ActiveX定时异常处理,是否发生异常;
f)若发生了异常,首先记录日志,然后弹出提示框给用户,征求用户的意见,是否要关闭定时器;若用户选择了关闭定时器,则关闭该ActiveX控件的定时任务,若用户选择继续运行,则不关闭定时器,继续对定时任务进行异常捕获;
g)关闭页面时卸载ActiveX定时异常处理。
优选地,方法调用的异常处理流程具体如下:
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,检测组态画面是否通过脚本调用了ActiveX控件的方法或设置了ActiveX控件的某些属性;
c)若没有调用ActiveX控件的方法或设置ActiveX控件的属性,则按照正常逻辑运行画面;
d)若调用了ActiveX控件的方法或设置了ActiveX控件的某些属性,则启动ActiveX方法调用异常处理;
e)检测通过脚本调用ActiveX控件的方法是否发生异常;
f)若发生了异常,则记录日志,之后继续对ActiveX控件的方法调用进行异常捕获;
g)关闭页面时卸载ActiveX控件方法调用异常处理。
根据本发明提供的一种在组态运行时捕获ActiveX控件异常的方法,其利用上述的在组态运行时捕获ActiveX控件异常的系统,来捕获ActiveX控件异常。
与现有技术相比,本发明具有如下的有益效果:
本发明提出的一种在组态运行时捕获ActiveX控件异常的方法,可以捕获到嵌入到组态中的ActiveX控件发生的异常,并对异常进行处理,保证组态页面中其它项的正常运行。本发明保证了嵌入系统中的任何一个ActiveX控件出错时不会对系统造成不可预料的错误。完全避免数据丢失、中断控制过程以及由此所造成的损失。在任何需要嵌入ActiveX控件的产品或项目中,都可以应用本发明的成果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为模块关系图;
图2为打开画面异常处理流程图;
图3为关闭画面异常处理流程图;
图4为定时异常处理流程图;
图5为方法调用异常处理流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明提出一种在组态运行时捕获ActiveX控件异常的方法,如图1所示,包括有:
组态应用模块:负责组态画面的打开、关闭、跳转、数据读写、设备状态展现、设备指令的下发。ActiveX控件嵌入到组态页面中,作为组态画面中的一个画面元素,通过组态与其它对象及应用服务进行信息交互。
组态应用异常处理模块:负责组态应用中,ActiveX控件的消息异常(包括定时异常、按钮点击异常等)处理,及组态调用ActiveX控件的方法或设置ActiveX控件属性时的异常处理。
ActiveX容器:ActiveX控件的容器,ActiveX控件嵌入到组态页面中时,不直接嵌入到组态页面中,首先在组态页面中自动创建一个ActiveX容器,ActiveX控件创建到ActiveX容器中;在ActiveX容器中实现对ActiveX控件的创建及卸载异常处理。
ActiveX容器异常处理模块:在ActiveX容器中实现的异常处理,负责ActiveX控件创建及卸载时的异常捕获处理。
ActiveX控件:自开发或第三方的任何可用的ActiveX控件,嵌入到组态页面中,以增强组态页面的展现功能。
本发明中实现了对ActiveX控件的4种异常处理,包括:
a)ActiveX控件创建时的异常,即打开画面时的异常;
b)ActiveX控件卸载时的异常,即关闭画面时的异常;
c)ActiveX控件定时任务异常;
d)调用ActiveX控件方法或设置ActiveX属性时的异常。
异常处理的机制是:自定义一个组态控件异常类型,组态系统异常管理模块将所有的系统可能抛出的异常映射成组态系统自定义的异常类型,当系统抛出异常时,转换成该自定义异常进行处理。自定义异常类型的格式如下:
本发明对4种异常处理的流程如图2~图5所示。其中打开画面和关闭画面时的异常由ActiveX容器异常处理模块实现;定时异常及方法调用异常由组态应用异常处理模块实现。
在打开画面创建ActiveX控件和卸载画面销毁ActiveX控件时,加入异常的捕获,可以捕获到打开画面和关闭画面时ActiveX引发的异常,捕获到异常之后根据业务需要加入异常处理机制。
定时、按钮点击等消息引发的异常处理机制是,在组态系统进程的消息链中嵌入异常捕获机制,截获ActiveX消息,并传递给后续处理环节,在后续处理环节中发生的系统异常,会被映射成组态系统自定义异常,被异常捕获机制捕获并处理。
调用ActiveX方法或设置ActiveX属性时引发的异常的处理机制是,在组态系统进程调用ActiveX控件方法的触发机制中嵌入异常捕获机制,截获方法调用的消息,并传递给实际被调用的ActiveX控件,在ActiveX方法调用中发生的异常,会被映射成组态系统自定义异常,被异常捕获机制捕获并处理。
异常处理流程如下
2、打开画面异常处理流程:
a)用户打开画面文件;
b)开始逐个读取画面对象,逐个创建;
c)若对象是普通对象,则按照普通对象处理,直接创建到组态画面中;
d)若对象是ActiveX控件,则为该ActiveX控件自动创建一个ActiveX容器,并启动ActiveX创建异常处理;
e)在ActiveX容器中创建真正的ActiveX控件;
f)若创建ActiveX控件时发生异常,ActiveX容器捕获到该异常,弹出提示信息给用户,结束画面创建,关闭该画面;
g)若控件创建无异常,继续读取、创建其它对象,直到所有对象创建完毕。然后开始画面运行。
3、关闭画面异常处理流程
a)用户关闭某一画面;
b)开始卸载画面对象,若是普通对象,则按照普通对象的卸载机制卸载;
c)若是ActiveX控件,则启动ActiveX控件卸载异常处理;
d)开始卸载ActiveX控件,若发生异常,则记录日志,然后卸载ActiveX容器;若无异常,则直接卸载ActiveX容器;
e)继续其它对象的卸载,直到所有对象卸载完毕,关闭组态画面。
4、定时异常处理流程
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,所包含的ActiveX控件是否启动了定时任务;
c)若无ActiveX控件的定时任务,则按照正常逻辑运行画面;
d)若包含了ActiveX控件的定时任务,则启动ActiveX定时异常处理;
e)检测ActiveX定时异常处理,是否发生异常;
f)若发生了异常,首先记录日志,然后弹出提示框给用户,征求用户的意见,是否要关闭定时器;若用户选择了关闭定时器,则关闭该ActiveX控件的定时任务,若用户选择继续运行,则不关闭定时器,继续对定时任务进行异常捕获;
g)关闭页面时卸载ActiveX定时异常处理。
5、方法调用异常处理流程(设置ActiveX控件属性的异常处理相同)
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,检测组态画面是否通过脚本调用了ActiveX控件的方法或设置了ActiveX控件的某些属性;
c)若没有调用ActiveX控件的方法或设置ActiveX控件的属性,则按照正常逻辑运行画面;
d)若调用了ActiveX控件的方法或设置了ActiveX控件的某些属性,则启动ActiveX方法调用异常处理(对ActiveX控件的属性设置,其实等同于调用该属性的Set方法);
e)检测通过脚本调用ActiveX控件的方法是否发生异常;
f)若发生了异常,则记录日志,之后继续对ActiveX控件的方法调用进行异常捕获;
g)关闭页面时卸载ActiveX控件方法调用异常处理。本专利自定义的组态异常SException可以捕获到的异常类型包括:
1.新建或卸载ActiveX控件时抛出的异常
2.ActiveX控件发生窗口消息时抛出的异常(例如定时器消息、点击控件上的按钮消息等等)
3.组态调用ActiveX控件的方法时抛出的异常
4.ActiveX控件在派生线程中抛出的异常
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本实施例的流程如下:
步骤一、在一体化监控指挥平台软件产品中加入本发明的成果,自定义异常SException,并实现对ActiveX控件的4种异常处理。自定义异常如下:
打开画面和关闭画面的异常处理机制是,在组态的CreateWnd方法和DestroyWnd方法中,分别加上SException异常的捕获及处理。
定时异常处理的机制是,重载应用类的虚函数PumpMessage,按如下方法实现:
方法调用异常处理的机制是,重载视图中的WindowProc方法,按照如下代码实现:
LRESULT CMyView::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
步骤二、编写一个测试ActiveX控件,名称为TestActiveX,在TestActiveX中,实现一个空的定时任务,即定时任务中不做任何操作。
步骤三、创建一个组态画面,名称为TestActiveXPage。在该页面中,添加控件TestActiveX,然后保存画面。
步骤四、修改控件TestActiveX的初始化方法,直接对空内存赋值,使之报异常,代码如下:
Char*p=NULL;
Strcpy(p,“test”);
步骤五、重新打开画面TestActiveXPage,可以看到该异常被捕获,并弹出了提示信息。
步骤六、恢复TestActiveX控件的初始化方法,将步骤四中的异常代码移到定时任务中。
步骤七、重新打开画面TestActiveXPage(本实施例屏蔽了定时异常提示),检查日志文件,以将定时异常被捕获并记录。
步骤八、恢复TestActiveX控件的定时任务,为控件添加一个方法TestMethod,将步骤四中的异常代码移到方法TestMethod中;在控件TestActiveX的退出方法中,也拷贝一段步骤四中的异常代码,使控件退出时发生异常。在组态页面TestActiveXPage中添加一个“测试”按钮,在组态脚本中响应该按钮的OnClick消息并调用控件TestActiveX的方法TestMethod。
步骤九、重新打开画面TestActiveXPage,点击“测试”按钮(可以多次点击),然后退出组态,关闭画面TestActiveXPage。检查日志文件,以将调用控件方法引发的异常及退出时引发的异常均被捕获并记录。
上述实例,可以很明显的看到本发明应用在组态中的优势。
为满足复杂的客户端展示需求,在绝大部分监控软件的组态系统中都提供了嵌入ActiveX控件的功能,可以嵌入自己开发或第三方的各类ActiveX控件。系统运行中任何一个控件发生异常,就会导致整个系统崩溃,影响产品稳定性和口碑。由于无法强制要求所有的控件自己处理异常,尤其是第三方控件。在组态系统中,屏蔽控件异常对组态系统正常运行的影响,保持系统的持续运行稳定性变得尤为重要。应用本发明,除了可以提高系统的长期运行稳定性,还可以提高异常定位的速度。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (9)

1.一种在组态运行时捕获ActiveX控件异常的系统,其特征在于,包括如下装置:
组态系统,用于组态页面的展示,ActiveX控件作为一个画面元素嵌入到组态页面中;
组态系统异常管理模块,用于将所有的系统可能抛出的异常映射成组态系统自定义的一个异常类型,当系统抛出异常时,转换成该自定义的异常类型进行处理;
组态异常处理模块,用于在组态系统进程的消息链中嵌入异常捕获机制,负责捕获并处理ActiveX控件中进行消息处理时引发的异常;
进一步地,所述组态系统,在加载每个ActiveX控件时,在组态页面中自动创建一个ActiveX容器,在ActiveX容器中创建ActiveX控件,由该ActiveX容器负责捕获并处理ActiveX控件加载和卸载时引发的异常;
所述组态异常处理模块,在组态系统进程调用ActiveX控件方法的触发机制中嵌入异常捕获机制,负责捕获并处理ActiveX控件方法被组态系统调用时引发的异常。
2.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,所述ActiveX容器在卸载AcitveX控件时,首先ActiveX容器去卸载其加载的ActiveX控件,如果在ActiveX卸载时发生异常,ActiveX容器会捕获到异常并进行处理。
3.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,所述在组态系统进程的消息链中嵌入异常捕获机制,具体为:先截获消息,并传递给后续处理环节,在后续处理环节中发生的系统异常,被映射成组态系统自定义异常类型,被异常捕获机制捕获并处理。
4.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,所述在组态系统进程调用ActiveX控件方法的触发机制中嵌入异常捕获机制,具体为:先截获ActiveX控件方法调用的消息,并传递给实际被调用的ActiveX控件,在ActiveX空间方法调用中发生的异常,被映射成组态系统自定义异常类型,被异常捕获机制捕获并处理。
5.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,打开画面异常的处理流程具体如下:
a)接收用户打开画面文件的指令;
b)开始逐个读取画面对象,逐个创建;
c)若对象是普通对象,则按照普通对象处理,直接创建到组态画面中;
d)若对象是ActiveX控件,则为该ActiveX控件自动创建一个ActiveX容器,并启动ActiveX创建异常处理;
e)在ActiveX容器中创建真正的ActiveX控件;
f)若创建ActiveX控件时发生异常,ActiveX容器捕获到该异常,弹出提示信息给用户,结束画面创建,关闭该画面;
g)若控件创建无异常,继续读取、创建其它对象,直到所有对象创建完毕;然后开始画面运行。
6.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,关闭画面的异常处理流程具体如下:
a)接收用户关闭某一画面的指令;
b)开始卸载画面对象,若是普通对象,则按照普通对象的卸载机制卸载;
c)若是ActiveX控件,则启动ActiveX控件卸载异常处理;
d)开始卸载ActiveX控件,若发生异常,则记录日志,然后卸载ActiveX容器;若无异常,则直接卸载ActiveX容器;
e)继续其它对象的卸载,直到所有对象卸载完毕,关闭组态画面。
7.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,定时的异常处理流程具体如下:
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,所包含的ActiveX控件是否启动了定时任务;
c)若无ActiveX控件的定时任务,则按照正常逻辑运行画面;
d)若包含了ActiveX控件的定时任务,则启动ActiveX定时异常处理;
e)检测ActiveX定时异常处理,是否发生异常;
f)若发生了异常,首先记录日志,然后弹出提示框给用户,征求用户的意见,是否要关闭定时器;若用户选择了关闭定时器,则关闭该ActiveX控件的定时任务,若用户选择继续运行,则不关闭定时器,继续对定时任务进行异常捕获;
g)关闭页面时卸载ActiveX定时异常处理。
8.根据权利要求1所述的在组态运行时捕获ActiveX控件异常的系统,其特征在于,方法调用的异常处理流程具体如下:
a)组态应用启动组态画面运行;
b)检测是否包含了ActiveX控件,检测组态画面是否通过脚本调用了ActiveX控件的方法或设置了ActiveX控件的某些属性;
c)若没有调用ActiveX控件的方法或设置ActiveX控件的属性,则按照正常逻辑运行画面;
d)若调用了ActiveX控件的方法或设置了ActiveX控件的某些属性,则启动ActiveX方法调用异常处理;
e)检测通过脚本调用ActiveX控件的方法是否发生异常;
f)若发生了异常,则记录日志,之后继续对ActiveX控件的方法调用进行异常捕获;
g)关闭页面时卸载ActiveX控件方法调用异常处理。
9.一种在组态运行时捕获ActiveX控件异常的方法,其特征在于,利用权利要求1至8中任一项所述的在组态运行时捕获ActiveX控件异常的系统,来捕获ActiveX控件异常。
CN201410116418.9A 2014-03-26 2014-03-26 在组态运行时捕获ActiveX控件异常的系统和方法 Active CN104951394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410116418.9A CN104951394B (zh) 2014-03-26 2014-03-26 在组态运行时捕获ActiveX控件异常的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410116418.9A CN104951394B (zh) 2014-03-26 2014-03-26 在组态运行时捕获ActiveX控件异常的系统和方法

Publications (2)

Publication Number Publication Date
CN104951394A true CN104951394A (zh) 2015-09-30
CN104951394B CN104951394B (zh) 2017-09-08

Family

ID=54166061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410116418.9A Active CN104951394B (zh) 2014-03-26 2014-03-26 在组态运行时捕获ActiveX控件异常的系统和方法

Country Status (1)

Country Link
CN (1) CN104951394B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446226A (zh) * 2018-03-08 2018-08-24 北京小米移动软件有限公司 应用异常的处理方法
WO2018196613A1 (zh) * 2017-04-27 2018-11-01 平安科技(深圳)有限公司 一种基于功能开关的应用程序控制方法、装置、服务器及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452420A (zh) * 2008-12-30 2009-06-10 中兴通讯股份有限公司 一种嵌入式软件异常监控和处理装置及其方法
CN102141947A (zh) * 2011-03-30 2011-08-03 东方通信股份有限公司 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
US20120191892A1 (en) * 2010-09-08 2012-07-26 International Business Machines Corporation Component-specific disclaimable locks
CN103617092A (zh) * 2013-11-21 2014-03-05 北京奇虎科技有限公司 一种基于浏览器的插件运行方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452420A (zh) * 2008-12-30 2009-06-10 中兴通讯股份有限公司 一种嵌入式软件异常监控和处理装置及其方法
US20120191892A1 (en) * 2010-09-08 2012-07-26 International Business Machines Corporation Component-specific disclaimable locks
CN102141947A (zh) * 2011-03-30 2011-08-03 东方通信股份有限公司 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
CN103617092A (zh) * 2013-11-21 2014-03-05 北京奇虎科技有限公司 一种基于浏览器的插件运行方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
倪凯斌: "基于Fuzzing的IE浏览器控件安全漏洞发掘技术研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018196613A1 (zh) * 2017-04-27 2018-11-01 平安科技(深圳)有限公司 一种基于功能开关的应用程序控制方法、装置、服务器及介质
CN108446226A (zh) * 2018-03-08 2018-08-24 北京小米移动软件有限公司 应用异常的处理方法
CN108446226B (zh) * 2018-03-08 2021-05-18 北京小米移动软件有限公司 应用异常的处理方法

Also Published As

Publication number Publication date
CN104951394B (zh) 2017-09-08

Similar Documents

Publication Publication Date Title
CN104268055B (zh) 一种程序异常的监控方法和装置
CN111183425B (zh) 用于实现数字云取证的系统和方法
CN112187585B (zh) 网络协议测试方法及装置
CN104766007A (zh) 一种基于文件系统过滤驱动实现沙箱快速恢复的方法
US20100242055A1 (en) Remote procedure call chains
CN105117645A (zh) 基于文件系统过滤驱动实现沙箱虚拟机多样本运行的方法
CN107239389A (zh) 一种在混合app中确定用户操作记录的方法及装置
CN106156353A (zh) 一种为数据库增加多语言动态编译执行引擎的方法和系统
CN107479878B (zh) 一种基于openresty的lua模块化开发方法及开发框架
CN110351259A (zh) 一种基于网络抓包获取app认证信息的方法及装置
CN111930472B (zh) 一种代码调试方法、装置、电子设备及存储介质
CN110286998A (zh) 虚拟机图形用户界面生效、执行过程记录方法和装置
CN107635001A (zh) Web脚本异常处理方法和装置
CN109325010A (zh) 日志查看方法、装置、计算机设备和存储介质
CN104951394A (zh) 在组态运行时捕获ActiveX控件异常的系统和方法
CN107479866A (zh) 基于重构技术实现开放终端应用数据与功能的方法
CN105453104B (zh) 系统保护用文件安全管理装置和管理方法
CN110399131B (zh) 提高应用程序稳定性的方法、装置、计算机设备
US7644316B2 (en) System, method and program for managing browser scripts sent from server to client
CN113434217B (zh) 漏洞扫描方法、装置、计算机设备及介质
CN116431443A (zh) 日志记录方法、装置、计算机设备及计算机可读存储介质
CN104573484A (zh) 一种高安全性密码口令框
CN108196982A (zh) 一种linux系统自动重启服务的配置方法
Seo et al. Techniques to generate UTP-based test cases from sequence diagrams using M2M (Model-to-Model) transformation
CN109743333A (zh) 一种全方位分析企业网络安全漏洞的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant