一种客户端软件运行的系统和方法

文档序号:6439554阅读:153来源:国知局
专利名称:一种客户端软件运行的系统和方法
技术领域
本发明涉及软件技术领域,更具体地说,涉及一种客户端软件运行的系统和方法。
技术背景
传统的客户端软件界面使用基于gdi或gdi++等技术的框架去实现,比如MFC (微软基础类),其特点是对于很多高要求的界面元素实现难度很高,或实现时间长,实现效率较低。对于一些界面变化需求特别大,对市场响应特别高的软件界面,这种软件实现方法难以满足要求。发明内容
本发明要解决的技术问题在于,针对现有客户端软件界面实现效率较低的缺陷, 提供一种客户端软件运行的系统和方法。
本发明解决其技术问题所采用的技术方案是构造一种客户端软件运行的系统, 包括运行窗口应用程序的界面层模块和功能层模块,以及Active X组件构成的中间层模块
所述窗口应用程序的界面层模块运行嵌入窗口应用程序的Html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件,并将获得的触发事件的消息通过Active X组件转发给窗口应用程序的功能层模块;
所述窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果,并将反馈结果的消息通过Active X组件转发给所述窗口应用程序的界面层模块通过所述客户端软件界面进行显示。
在根据本发明所述的客户端软件运行的系统中,所述中间层模块的ActiveX组件具有中间层消息处理单元,并具有使用内存映射文件的消息池;所述中间层消息处理单元对所述内存映射文件进行管理,使得所述界面层模块和功能层模块对内存映射文件的内容进行读出或者写入。
在根据本发明所述的客户端软件运行的系统中,所述界面层模块进一步包括
Html单元,用于运行嵌入窗口应用程序的Html代码生成客户端软件界面,并接收反馈结果的消息通过所述客户端软件界面进行显示;
JavaScript单元,用于通过嵌入窗口应用程序的JavMcript代码捕捉所述客户端软件界面上的触发事件;以及
界面层消息处理单元,与所述Html单元、JavaScript单元和中间层模块的中间层消息处理单元相连,用于将所述JavMcript单元获取的触发事件的消息转发给所述中间层消息处理单元,并将从所述中间层消息处理单元获得的反馈结果的消息发送给所述Html 单元进行显示。
在根据本发明所述的客户端软件运行的系统中,所述功能层模块进一步包括
消息执行单元,用于根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果;
功能层消息处理单元,用于将从中间层模块的中间层消息处理单元获得的触发事件的消息发送给所述消息执行单元,并将从所述消息执行单元得到的反馈结果的消息发送给所述中间层消息处理单元。
在根据本发明所述的客户端软件运行的系统中,所述中间层模块的ActiveX组件内部建立有异步消息发送接口 ;所述界面层模块和功能层模块发送的触发事件和反馈结果的消息用于通过所述异步消息发送接口写入所述内存映射文件中。
在根据本发明所述的客户端软件运行的系统中,且所述中间层模块的ActiveX组件内部建立有消息池监控处理单元和自定义消息映射宏接口 ;所述消息池监控处理单元用于监控消息池,判断是否检测到有效的消息;所述中间层消息处理单元通过所述自定义消息映射宏接口在消息池监控处理单元监控到有效消息时,相应转发给界面层模块或功能层模块。
本发明还提供了一种客户端软件运行的方法,包括以下步骤
Si、窗口应用程序的界面层模块运行嵌入窗口应用程序的html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件;
S2、所述界面层模块将获得的触发事件的消息通过Active X组件转发给窗口应用程序的功能层模块;
S3、所述窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获得反馈结果;
S4、所述功能层模块将反馈结果的消息通过Active X组件转发给所述窗口应用程序的界面层模块通过所述客户端软件界面进行显示。
在根据本发明所述的客户端软件运行的方法中,所述Active X组件构成中间层模块;所述步骤S2和S4中,所述中间层模块的Active X组件内部具有中间层消息处理单元, 并具有使用内存映射文件的消息池;所述中间层消息处理单元对所述内存映射文件进行管理,使得所述界面层模块或功能层模块对内存映射文件的内容进行读出或者写入。
在根据本发明所述的客户端软件运行的方法中,所述步骤S2和S4中,所述中间层模块的ActiveX组件内部建立有异步消息发送接口 ;所述界面层模块和功能层模块发送的触发事件和反馈结果的消息用于通过所述异步消息发送接口写入所述内存映射文件中。
在根据本发明所述的客户端软件运行的方法中,所述步骤S2和S4中,所述中间层模块的ActiveX组件内部建立有消息池监控处理单元和自定义消息映射宏接口 ;所述消息池监控处理单元用于监控消息池,判断是否检测到有效的消息;所述中间层消息处理单元通过所述自定义消息映射宏接口在消息池监控处理单元监控到有效消息时,相应转发给界面层模块或功能层模块。
实施本发明的客户端软件运行的系统和方法,具有以下有益效果本发明利用微软的ActiveX组件可以同时被客户端软件和脚本语言使用的特点,结合Html设计界面元素的优点,通过ActiveX组件实现消息的转发,既可以快速响应界面变化,又能满足高难度的界面元素设计,还不影响其交互灵活性。且可以在ActiveX中使用内存映射文件作为客户端界面的窗口应用程序的功能层和Html界面元素的消息池进行通讯。


下面将结合附图及实施例对本发明作进一步说明,附图中
图1为根据本发明的优选实施例中客户端软件运行的系统的模块示意图2为根据本发明的客户端软件运行的方法的具体流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
请参阅图1,为根据本发明的优选实施例中客户端软件运行的系统的模块示意图。 如图1所示,该客户端软件运行的系统包括运行窗口应用程序的界面层模块10和功能层模块20,以及由Active X组件构成的中间层模块30。
下面对本发明提供的客户端软件的创建过程进行具体说明,包括以下步骤
步骤1 首先使用基于Windows操作系统的窗口应用程序作为程序框架,即设计一个支持Html的窗口应用程序。以MFC为例,使用向导生成一个对话框程序,选择“use html dialog” 选项。
步骤2 使用Html+JavaScript的方式设计程序界面,其包括使用html语言进行软件界面元素的布局,使用JavMcript进行辅助实现交互效果。将设计完的Html网页嵌入步骤1中设计的窗口应用程序框架中;
步骤3 创建ActiveX组件,作为窗口应用程序框架和Html网页的通讯中间件。以MFC为例,在向导中选择MFC/MFC ActiveX Control。在设计完成ActiveX组件后,将该ActiveX组件注册至Windows操作系统上,这样该接口才可以被窗口应用程序和 Html+JavaScript 调用使用 ActiveX 组件。
在上述基于web的客户端软件界面设计完成后,该设计完的客户端软件界面以 Html网页形式显示,并设计为客户端软件界面的外观。在设计完后即可通过如图1所示的客户端软件运行的系统运行该客户端软件。
窗口应用程序的界面层模块10用于运行嵌入窗口应用程序的Html代码生成客户端软件界面。该界面层模块10还通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件,并将获得的触发事件的消息通过中间层模块30的Active X组件转发给窗口应用程序的功能层模块20。
窗口应用程序的功能层模块20根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果,并将反馈结果的消息通过中间层模块30的Active X组件转发给窗口应用程序的界面层模块20通过客户端软件界面进行显示。
在本发明提供的客户端软件运行的系统中,中间层模块30是采用内存映射文件 32作为消息池。在创建软件时,在ActiveX组件内使用内存映射文件作为消息池,用来管理消息的接收和发送,以及部分数据的交换。具体为在ActiveX组件内部,分配一块内存空间,使用该空间生成内存映射文件。ActiveX组件还具有中间层消息处理单元31,由中间层消息处理单元31对内存映射文件32进行管理,使得界面层模块10和功能层模块20对内存映射文件的内容进行读出或者写入。其中的内容可以根据功能层模块20和界面层模块10的Html网页约定好的格式,称为通讯协议,进行解析。
中间层模块30的ActiveX组件内部建立有异步消息发送接口(PostMessage接口)实现消息写入功能。其实现的功能就是向内存映射文件32 (即消息池)写入约定好格式的消息体。即界面层模块10和功能层模块30发送的触发事件和反馈结果的消息用于通过该PostMessage接口写入所述内存映射文件中。
中间层模块30的ActiveX组件内部还建立有消息池监控处理单元和自定义消息映射宏接口(OnMessage接口)。该消息池监控处理单元用于监控作为消息池的内存映射文件,判断是否检测到有效的消息。中间层消息处理单元31通过该OnMessage接口在消息池监控处理单元监控到有效消息时,相应转发给界面层模块10或功能层模块20。
请参阅图1,界面层模块10进一步包括Html单元13、JavaScript单元12和界面层消息处理单元11。
其中,所述Html单元13用于运行上述嵌入窗口应用程序的Html代码生成Html 网页形式的客户端软件界面。且Html单元13在接收到中间层模块30转发的功能层模块 20的反馈结果的消息后,还通过改客户端软件界面进行显示。
JavaScript单元12用于通过嵌入窗口应用程序的Javakript代码捕捉Html网页形式的客户端软件界面上的触发事件,例如鼠标事件。例如,用户在Html网页即设计完的客户端软件界面上点击一个扫描注册表错误的按钮。JavMcript单元12捕捉到该鼠标事件,通过事件响应函数生成触发事件的消息,如MSG_SCAN_REGISTER_ERR(自定义消息, 可以为字符串)的消息。
界面层消息处理单元11,与Html单元13、JavaScript单元12和中间层消息处理单元31相连,将JavMcript单元12获取的触发事件的消息转发给中间层消息处理单元 31,再由中间层消息处理单元31在activex组件内部通过PostMessage接口将该触发事件的消息写入消息池。界面层消息处理单元13还将从中间层消息处理单元31通过OnMessage 接口获得的反馈结果的消息发送给Html单元13进行显示。
功能层模块20进一步包括功能层消息处理单元21和消息执行单元22。其中,功能层消息处理单元21与中间层消息处理单元31和消息执行单元22相连,用于将从中间层消息处理单元31通过OnMessage接口获得的触发事件的消息发送给消息执行单元22。再由该消息执行单元22接收到该触发事件的消息,例如判断到是一个扫描注册表错误的指令, 执行窗口应用程序的消息处理代码,即进行注册表扫描,并生成反馈结果的消息,如SCAN_ FINISH消息。扫描完成,功能层模块20的功能层消息处理单元21通过中间层消息处理单元31的PostMessage接口向消息池(内存映射文件)中写入该SCAN_FINISH消息。
下面对本发明的客户端软件运行的方法的具体过程进行说明。该客户端软件也需要通过前述的客户端软件的创建过程的步骤进行创建。该设计完的客户端软件界面以Html 网页形式显示,并设计为客户端软件界面的外观。在设计完后即可通过如下客户端软件运行的方法运行该客户端软件。
首先,在步骤Sl中,窗口应用程序的界面层模块运行嵌入窗口应用程序的html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件。
随后,在步骤S2中,界面层模块将获得的触发事件的消息通过Active X组件转发给窗口应用程序的功能层模块。
随后,在步骤S3中,窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获得反馈结果。
最后,在步骤S4中,功能层模块将反馈结果的消息通过Active X组件转发给所述窗口应用程序的界面层模块通过所述客户端软件界面进行显示。
请参阅图2,为根据本发明的客户端软件运行的方法的具体流程图。如图2所示, 该客户端软件运行的方法的具体步骤包括
首先,在步骤S201中,界面层模块通过以Html生成的客户端软件界面获取触发事件例如鼠标事件。例如,用户在Html网页即设计完的客户端软件界面上点击一个扫描注册表错误的按钮。JavMcript单元捕捉到该鼠标事件,通过事件响应函数生成触发事件的消息,如MSG_SCAN_REGISTER_ERR(自定义消息,可以为字符串)的消息。该步骤对应上述步骤Sl的功能。
随后,在步骤S202中,在ActiveX组件内部通过PostMessage接口将该触发事件的消息写入消息池。在该方法中,中间层模块为由ActiveX组件构成的中间通讯件,并采用内存映射文件作为消息池。在创建软件时,在ActiveX组件内使用内存映射文件作为消息池,用来管理消息的接收和发送,以及部分数据的交换。具体为在ActiveX组件内部,分配一块内存空间,使用该空间生成内存映射文件。ActiveX组件还具有中间层消息处理单元, 由中间层消息处理单元对内存映射文件进行管理,使得界面层模块和功能层模块对内存映射文件的内容进行读出或者写入。其中的内容可以根据功能层模块和界面层模块的Html 网页约定好的格式,称为通讯协议,进行解析。
中间层模块的ActiveX组件内部建立有异步消息发送接口(PostMessage接口)实现消息写入功能。其实现的功能就是向内存映射文件(即消息池)写入约定好格式的消息体。即界面层模块和功能层模块发送的触发事件和反馈结果的消息用于通过该 PostMessage接口写入所述内存映射文件中。
随后,在步骤S203中,中间层模块的中间层消息处理单元通过OnMessage接口得知检测有效的消息来到消息池,取出该消息发送给功能层模块。步骤S202和步骤S203完成了上述步骤S2的功能。中间层模块的ActiveX组件内部还建立有消息池监控处理单元和自定义消息映射宏接口(OnMessage接口)。该消息池监控处理单元用于监控作为消息池的内存映射文件,判断是否检测到有效的消息。中间层消息处理单元通过该OnMessage接口在消息池监控处理单元监控到有效消息时,相应转发给功能层模块。
随后,在步骤S204中,功能层模块接收到该触发事件的消息,执行窗口应用程序的消息处理代码,生成反馈结果的消息。例如,功能层模块接收到该触发事件的消息,例如判断到是一个扫描注册表错误的指令,执行窗口应用程序的消息处理代码,即进行注册表扫描,并生成反馈结果的消息,如SCAN_FINISH消息。该步骤对应上述步骤S3的功能。
随后,在步骤S205中,在activex组件内部通过PostMessage接口将该反馈结果的消息写入消息池。例如,写入上述SCAN_FINISH消息。
随后,在步骤S206中,中间层消息处理单元通过OnMessage接口得知检测有效的消息来到消息池,取出该反馈结果的消息发送给界面层模块。
随后,在步骤S207中,界面层模块将接收的反馈结果的消息通过所述客户端软件界面进行显示。步骤S205、步骤S206和步骤S207完成了上述步骤S4的功能。
本发明是根据特定实施例进行描述的,但本领域的技术人员应明白在不脱离本发明范围时,可进行各种变化和等同替换。此外,为适应本发明技术的特定场合或材料,可对本发明进行诸多修改而不脱离其保护范围。因此,本发明并不限于在此公开的特定实施例, 而包括所有落入到权利要求保护范围的实施例。
权利要求
1.一种客户端软件运行的系统,其特征在于,包括运行窗口应用程序的界面层模块和功能层模块,以及Active X组件构成的中间层模块所述窗口应用程序的界面层模块运行嵌入窗口应用程序的Html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件, 并将获得的触发事件的消息通过Active X组件转发给窗口应用程序的功能层模块;所述窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果,并将反馈结果的消息通过Active X组件转发给所述窗口应用程序的界面层模块通过所述客户端软件界面进行显示。
2.根据权利要求1所述的客户端软件运行的系统,其特征在于,所述中间层模块的 ActiveX组件具有中间层消息处理单元,并具有使用内存映射文件的消息池;所述中间层消息处理单元对所述内存映射文件进行管理,使得所述界面层模块和功能层模块对内存映射文件的内容进行读出或者写入。
3.根据权利要求1或2所述的客户端软件运行的系统,其特征在于,所述界面层模块进一步包括Html单元,用于运行嵌入窗口应用程序的Html代码生成客户端软件界面,并接收反馈结果的消息通过所述客户端软件界面进行显示;Jav必cript单元,用于通过嵌入窗口应用程序的Jav必cript代码捕捉所述客户端软件界面上的触发事件;以及界面层消息处理单元,与所述Html单元、JavaScript单元和中间层模块的中间层消息处理单元相连,用于将所述JavMcript单元获取的触发事件的消息转发给所述中间层消息处理单元,并将从所述中间层消息处理单元获得的反馈结果的消息发送给所述Html单元进行显示。
4.根据权利要求1或2所述的客户端软件运行的系统,其特征在于,所述功能层模块进一步包括消息执行单元,用于根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果;功能层消息处理单元,用于将从中间层模块的中间层消息处理单元获得的触发事件的消息发送给所述消息执行单元,并将从所述消息执行单元得到的反馈结果的消息发送给所述中间层消息处理单元。
5.根据权利要求2所述的客户端软件运行的系统,其特征在于,所述中间层模块的 ActiveX组件内部建立有异步消息发送接口 ;所述界面层模块和功能层模块发送的触发事件和反馈结果的消息用于通过所述异步消息发送接口写入所述内存映射文件中。
6.根据权利要求2所述的客户端软件运行的系统,其特征在于,且所述中间层模块的 ActiveX组件内部建立有消息池监控处理单元和自定义消息映射宏接口 ;所述消息池监控处理单元用于监控消息池,判断是否检测到有效的消息;所述中间层消息处理单元通过所述自定义消息映射宏接口在消息池监控处理单元监控到有效消息时,相应转发给界面层模块或功能层模块。
7.一种客户端软件运行的方法,其特征在于,包括以下步骤Si、窗口应用程序的界面层模块运行嵌入窗口应用程序的html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavMcript代码捕捉该客户端软件界面上的触发事件;S2、所述界面层模块将获得的触发事件的消息通过ActiveX组件转发给窗口应用程序的功能层模块;S3、所述窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获得反馈结果;S4、所述功能层模块将反馈结果的消息通过ActiveX组件转发给所述窗口应用程序的界面层模块通过所述客户端软件界面进行显示。
8.根据权利要求7所述的客户端软件运行的方法,其特征在于,所述ActiveX组件构成中间层模块;所述步骤S2和S4中,所述中间层模块的Active X组件内部具有中间层消息处理单元,并具有使用内存映射文件的消息池;所述中间层消息处理单元对所述内存映射文件进行管理,使得所述界面层模块或功能层模块对内存映射文件的内容进行读出或者写入。
9.根据权利要求8所述的客户端软件运行的方法,其特征在于,所述步骤S2和S4中, 所述中间层模块的ActiveX组件内部建立有异步消息发送接口 ;所述界面层模块和功能层模块发送的触发事件和反馈结果的消息用于通过所述异步消息发送接口写入所述内存映射文件中。
10.根据权利要求8所述的客户端软件运行的方法,其特征在于,所述步骤S2和S4中, 所述中间层模块的ActiveX组件内部建立有消息池监控处理单元和自定义消息映射宏接 Π ;所述消息池监控处理单元用于监控消息池,判断是否检测到有效的消息;所述中间层消息处理单元通过所述自定义消息映射宏接口在消息池监控处理单元监控到有效消息时, 相应转发给界面层模块或功能层模块。
全文摘要
本发明涉及一种客户端软件运行的系统和方法,该系统包括运行窗口应用程序的界面层模块和功能层模块,以及Active X组件构成的中间层模块所述窗口应用程序的界面层模块运行嵌入窗口应用程序的Html代码生成客户端软件界面,并通过嵌入窗口应用程序的JavaScript代码捕捉该客户端软件界面上的触发事件,将获得的触发事件的消息通过Active X组件转发给窗口应用程序的功能层模块;所述窗口应用程序的功能层模块根据触发事件的消息执行窗口应用程序的消息处理代码,获取反馈结果通过Active X组件转发给所述界面层模块通过所述客户端软件界面进行显示。本发明通过ActiveX组件实现消息的转发,既可以快速响应界面变化,又能满足高难度的界面元素设计,还不影响其交互灵活性。
文档编号G06F9/54GK102520985SQ20111038669
公开日2012年6月27日 申请日期2011年11月29日 优先权日2011年11月29日
发明者彭重阳 申请人:深圳市万兴软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1