专利名称:基于Web应用的ActiveX组件的复用方法
技术领域:
本发明涉及通讯领域,具体地涉及基于Web的应用软件客户端 以及ActiveX组件:技术。
背景技术:
随着IP网络技术的迅速发展,分布式计算机系统逐渐应用到各 个领域之中。在分布式计算机系统中,基于Web的应用方式越来越 多。所有与界面以及业务逻辑相关的程序以Web页面方式存放在服 务器上,在客户端上只需要包含一个Web浏览器,将操作界面展现 给用户。正因为主要的业务逻辑以及操作界面都在服务器端的Web 页面程序实现,真正体现了一种"瘦"客户端的思想,更便于操作 界面的定制和修改以及业务功能的开发和维护。在基于Web的应用软件中,通常的做法是在客户端嵌入一个 Web浏览器,负责Web页面的下载、解碎斤和显示,4旦是Web页面 代码往往需要与客户端本地程序进行信息交互。通常,可在Web页面代码中调用ActiveX组件的成员函数,再 由ActiveX组件向客户端的本地窗口发送消息的方式实现Web页面 与本机程序的信息交互。但是,由于ActiveX组件只有在Web页面 加载时创建,并且附属于Web浏览器内核窗口,通过窗口的乂人属关 系无法找到当前客户端程序的指定窗口。」接照正常的实现方法,将 当前客户端禾呈序中4妄收ActiveX组件消息的窗口名称固定为一个字
符串,ActiveX控件在发送消息之前以这个固定字符串为窗口名称 找到该窗口 ,向该窗口发送消息即可。由于这个ActiveX组4牛向名 称固定的窗口发送消息,带来的问题是这个ActiveX组件只能用于 当前的客户端中,不能作为一个通用的ActiveX通讯组件同时为其 他基于Web的应用软件客户端提供信息交互接口 。发明内容考虑到上述问题而做出本发明,为此,本发明的主要目的在于 4是供一种基于Web应用的ActiveX纽J牛的复用方法,4吏Web页面与 本机程序信息交互模块化、通用化,实现不同客户端之间的模块复用。才艮据本发明的基于Web应用的ActiveX组件的复用方法,包括 步骤S102,在基于Web应用的客户端初始化客户端的窗口时,读 取客户端在操作系统中占用的进程编号,并将读取到的进程编号设 置为窗口名称、;步艰《S104,客户端的窗口启动Web页面,获耳又Web 页面的代码,并才艮据ActiveX组件的标识将ActiveX组件力口载到Web 页面中;以及步骤S106, Web页面的代码调用ActiveX组件的写入 或读取函数,由该写入或读取函数根据该进程编号查找到窗口,从 而对窗口进行信息内容的写入或读取。在步骤S106中,在写入时包括以下处理Web页面的代码调 用ActiveX组件的写入函数,写入函数的参数为需要写入到客户端 的信息内容;写入函数获取客户端的进程编号,根据进程编号查找 窗口,并向窗口传递需要写入的信息内容;以及在读取时包括以下 处理Web页面的代码调用ActiveX组件的读取函数,读耳又函数的 参数为需要从客户端读取的信息内容;读取函数获取客户端的进程 编号,根据进程编号查找窗口,并将窗口中获取需要读取的信息内 容传递给Web页面的代码。
在该方法的步骤S104中,进一步包括客户端的窗口启动Web 浏览器,设置Web服务器的地址,4艮据地址从Web服务器获取并 解析Web页面,获得Web页面的代码。此外,在该方法中,在进行写入时,在查找到窗口之后进一步 包括Web页面向窗口发送写入同步消息,写入同步消息中具有需 要写入的信息内容的标识,并且根据需要写入的信息内容的标识传 递需要写入的信息内容。此外,在该方法中,需要写入的信息内容的标识为指向需要写 入的信息内容的指针。此外,在该方法中,在进行读取时,在查找到窗口之后进一步 包4舌Web页面向窗口发送读取同步消息,读耳又同步消息中具有需 要读取的信息内容的标识,客户端将需要读取的信息内容添加到需 要读取的信息内容的标识中,从窗口中获取需要读取的信息内容。此外,在该方法中,需要读取的信息内容的标识为指向需要读 取的信息内容的指针。此外,在该方法中,ActiveX组件的标识为全局唯一标识符。通过本发明的上述4支术方案,实现了 Web页面与本积i程序信息 交互ActiveX组件的模块化、通用化、和简单化,达到多客户端的 复用效果,从而节约了软、硬件资源。本发明的其它特征和优点将在随后的说明书中阐述,并且,部 分地从说明书中变得显而易见,或者通过实施本发明而了解。本发 明的目的和其^f也优点可通过在所写的i兌明书、斥又利要求书、以及附 图中所特别指出的结构来实现和获得。
此处所说明的附图用来^是供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中件的复用方法的流程图;以及图2是示出了才艮据本发明实施例的Web页面通过ActiveX通讯 组件读耳又和写入信息的交互流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此 处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本 发明。本发明提供了一种采用ActiveX通讯组件实现Web页面与本地 程序信息交互的方法,更重要的是该ActiveX控件可以同时4皮多个 Web客户端复用。Web页面与本机程序(客户端)的信息交互方式分为写入和读 耳又两种,下面分别4笛述(1 )写入Web页面 码调用ActiveX通ifL组件的写入函#t, 参数为需要传递给本机程序的信息内容。ActiveX通讯组件的写入 函数首先获取到当前的进程编号,并将进程编号作为窗口名称找到 接收消息的窗口,向该窗口发送同步消息,消息参数为一个指针, 指向信息内容。客户端窗口接收到消息后,从以消息参数传送过来 的指针中获取信息内容进行相关处理; (2)读耳又Web页面代码调用ActiveX通讯组件的读耳又函凄史, 参数为读取的信息名称,返回值即为读取的信息内容。ActiveX通 讯组件的读取函数首先获取到当前的进程编号,并将进程编号作为 窗口名称找到^妄收消息的窗口,向该窗口发送同步消息,消息参数为一个指针。客户端窗口4妄收到消息后,读耳又本地内容,填写到以 消息参数传送过来的指针中即可。ActiveX通讯组件发送消息成功 后,将指'图1件的复用方法的流程图。如图1所示,包括步骤S102,在基于Web应用的客户端初 始4匕客户端的窗口时,读取客户端在才喿作系统中占用的进禾呈编号, 并将读取到的进程编号设置为窗口名称;步骤S104,客户端的窗口 启动Web页面,获取Web页面的4戈码,并4艮据ActiveX组件的标识 将ActiveX组件加载到Web页面中;以及步骤S106, Web页面的 代码调用ActiveX组件的写入或读取函数,由该写入或读取函数根 据该进程编号查找到窗口 ,从而对窗口进行信息内容的写入或读取。其中,在写入时具体可以包括以下处理Web页面的代码调用 ActiveX组件的写入函数,写入函数的参数为需要写入到客户端的 信息内容;写入函数获取客户端的进程编号,#4居进程编号查找窗 口,并向窗口传递需要写入的信息内容。另一方面,在读取时可以包4舌以下处理Web页面的代7马调用 ActiveX组件的读取函数,读取函数的参数为需要从客户端读取的 信息内容;读取函数获取客户端的进程编号,根据进程编号查找窗 口 ,并将窗口中获取需要读取的信息内容传递给Web页面的代码。
在该方法的步骤S104中,进一步包括客户端的窗口启动Web 浏览器,设置Web服务器的地址,才艮据地址从Web服务器获取并 解析Web页面,获得Web页面的代码。此外,在该方法中,在进行写入时,在查找到窗口之后进一步 包括Web页面向窗口发送写入同步消息,写入同步消息中具有需 要写入的信息内容的标识,并且根据需要写入的信息内容的标识传 递需要写入的信息内容。此外,在该方法中,需要写入的信息内容的标识为指向需要写 入的信息内容的指针。此外,在该方法中,在进行读取时,在查找到窗口之后进一步 包括Web页面向窗口发送读取同步消息,读取同步消息中具有需 要读取的信息内容的标识,客户端将需要读取的信息内容添加到需 要读取的信息内容的标识中,从窗口中获取需要读取的信息内容。此外,在该方法中,需要读取的信息内容的标识为指向需要读 取的信息内容的指针。此夕卜,在该方法中,ActiveX组件的标识为全局p舉一标识符。这里以IPTV PC客户端库欠件为例,详细i兌明Windows才喿作系统 下Microsoft Visual C+十作为开发工具的实玉见方法。基于Web应用的 客户端程序包含主程序(客户端)窗口 、 Web浏览器(Internet Explorer 浏览器组件)和ActiveX通"Wi且件三个才莫块。图2是示出了才艮据本发明实施例的Web页面通过ActiveX通讯 组件读取和写入信息的交互流程图。
如图2所示,其中,主程序窗口实现本机的一些界面显示以及 接收和处理ActiveX通讯组件发送过来的消息;Web浏览器按照主 控窗口i殳置的"良务器地址下载并解析、展示Web页面;ActiveX通 讯组件由Web页面调用相关4妄口负责与主控窗口之间的消息通ifl 。参照以上系统才莫型,本发明包4舌以下步艰《步艰《S202,客户端主禾呈序窗口名称i殳置客户端程序启动时,在主窗口 (窗口)初始化函数中,(本机主 考呈序,即,客户端主禾呈序)调用Windows API函凄t GetCurrentProcessId 获耳又当前进程编号,该编号一4殳为4位的凄t字,例如2068,将其 转换为字符串后设置为窗口名称;步艰《S204, Web页面以及ActiveX通讯组件加载客户端主窗口启动Web浏览器,并设置Web服务器地址。Web 浏览器乂人Web力良务器上下载、解析Web页面,然后4艮据Web页面 代码加载ActiveX组件;步骤S206, Web页面与主程序窗口之间的信息交互Web页面与主禾呈序窗口之间的4言息交互分为写入和读取两种, 下面分别描述(1 )写入如图2所示,Web页面代码直接调用ActiveX通讯 组件的Write函数,参数为需要传递给主窗口的信息内容。ActiveX 通讯组件在Write函数中首先调用 Windows API 函数 GetCurrentProcessId获取当前进程编号,此时读取到的编号应为 2068,然后以该进禾呈编号作为窗口名-尔调用Windows API函凄t FindWindow得到主窗口句柄,4妾下来再调用Windows API函凄史 SendMessage向主窗口发送同步消息,消息参凄史为指向4言息内容的 指针。主窗口接收到消息后,从消息参数中取出信息内容即可进行 相关处J里;(2 )读耳又如图2所示,Web页面^码直接^调用ActiveX通讯 组件的Read函数,参数为需要从本机读取的信息类型,返回值为读 耳又到的信息内容。ActiveX通讯组件在Read函f丈中同样首先调用 Windows API函数GetCurrentProcessId获取当前进程编号,此时读 耳又到的编号应为2068,然后以该进考呈编号作为窗口名^f尔调用 Windows API函凄丈FindWindow 4寻到主窗口句才丙,4妄下来再调用 Windows API函凄t SendMessage向主窗口发送同步消息,消息参凝: 为指向一个结构的指针。该结构包含需要读取的信息类型和分配好的地址空间。主窗口接收到消息后,从消息参数的结构指针中取出 信息类型,读取本机的信息后填入到结构指针中分配好的地址空间。 ActiveX通讯组件调用SendMessage函ft返回后,将结构指4十中读 耳又到的内容作为Read函凄丈的返回值4专递主合Web页面。综上所述,本发明实J见了 Web页面与本才几禾呈序〗言息交互 ActiveX组件的才莫块化、通用化、以及简单化,达到多客户端的复 用效果,/人而节约了寿欠、碩_件资源。以上所述仅为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在 本发明的精神和原则之内,所作的任何<奮改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1.一种基于Web应用的ActiveX组件的复用方法,其特征在于,包括步骤S102,在基于Web应用的客户端初始化所述客户端的窗口时,读取所述客户端在操作系统中占用的进程编号,并将读取到的所述进程编号设置为所述窗口的名称;步骤S104,所述客户端的窗口启动Web页面,获取所述Web页面的代码,并根据ActiveX组件的标识将所述ActiveX组件加载到所述Web页面中;以及步骤S106,所述Web页面的代码调用所述ActiveX组件的写入或读取函数,由所述写入或读取函数根据所述进程编号查找到所述窗口,从而对所述窗口进行信息内容的写入或读取。
2. 才艮据权利要求1所述的方法,其特征在于,所述步骤S106进 一步包括在写入时包括以下处理所述Web页面的代码调用所述 ActiveX组件的写入函数,所述写入函数的参数为需要写入到 所述客户端的信息内容;所述写入函数获取所述进程编号,根 据所述进程编号查找所述窗口,并向所述窗口传递需要写入的 所述信息内容;以及在读取时包括以下处理所述Web页面的代码调用所述 ActiveX组件的读取函数,所述读取函数的参数为需要从所述 客户端读取的信息内容;所述读取函数获取所述进程编号,根 据所述进程编号查找所述窗口 ,并将所述窗口中获取需要读取 的所述信息内容传递给所述Web页面的代码。
3. 根据权利要求1所述的方法,其特征在于,在所述步骤S104 中,进一步包括所述客户端的所述窗口启动Web浏览器, 设置Web服务器的地址,根据所述地址从所述Web服务器获 取并解析所述Web页面,获得所述Web页面的代码。
4. 根据权利要求1或2所述的方法,其特征在于,在进行写入时, 在查找到所述窗口之后进一步包括所述Web页面向所述窗 口发送写入同步消息,所述写入同步消息中具有需要写入的所 述信息内容的标识,并且根据需要写入的所述信息内容的标识 传递需要写入的所述信息内容。
5. 根据权利要求4所述的方法,其特征在于,需要写入的所述信 息内容的标识为指向需要写入的所述信息内容的指针。
6. 根据权利要求1或2所述的方法,其特征在于,在进行读取时, 在查找到所述窗口之后进一步包4舌所述Web页面向所述窗 口发送读取同步消息,所述读取同步消息中具有需要读取的所 述信息内容的标识,所述客户端将需要读取的所述信息内容添 加到需要读取的所述信息内容的标识中,从所述窗口中获取需 要读取的所述信息内容。
7. 根据权利要求6所述的方法,其特征在于,需要读取的所述信 息内容的标识为指向需要读取的所述信息内容的指针。
8. 根据权利要求l、 2、 3、 5或7所述的方法,其特征在于,所 述ActiveX组件的标识为全局p眷一标识符。
全文摘要
本发明公开了一种基于Web应用的ActiveX组件的复用方法,包括在基于Web应用的客户端初始化客户端的窗口时,读取客户端在操作系统中占用的进程编号,并将读取到的进程编号设置为窗口名称;客户端的窗口启动Web页面,获取Web页面的代码,并根据ActiveX组件的标识将ActiveX组件加载到Web页面中;以及Web页面的代码调用ActiveX组件的写入或读取函数,由该写入或读取函数根据该进程编号查找到窗口,从而对窗口进行信息内容的写入或读取。通过本发明,实现了Web页面与本机程序信息交互ActiveX组件的模块化、通用化、以及简单化,达到多客户端的复用效果,从而节约了软、硬件资源。
文档编号G06F9/445GK101132413SQ20071015303
公开日2008年2月27日 申请日期2007年9月18日 优先权日2007年9月18日
发明者鑫 吕, 金晓静 申请人:中兴通讯股份有限公司