Linux下本地应用程序嵌入桌面窗体的方法及系统的制作方法

文档序号:6397911阅读:546来源:国知局
专利名称:Linux下本地应用程序嵌入桌面窗体的方法及系统的制作方法
技术领域
本发明涉及桌面窗体的嵌入,尤其是一种在Linux下本地应用程序嵌入桌面窗体的方法及系统。
背景技术
目前,用户通过打开安装好的本地应用程序即可完成与本地应用程序相关的操作,由于这种操作简单快捷,所以,当涉及到本地应用程序能够直接处理时,用户一般通过直接打开本地应用程序的方式。但有时一些桌面窗体中也会用到相关的本地应用程序,比如在桌面窗体中打开一些办公文档或办公表格,此时,如果下载、拷贝后通过本地应用程序进行操作,不仅办公不方便,也很浪费时间,而且由于需要在本地应用程序和桌面窗体之间经常进行切换,很容易产生错误。

发明内容
为解决上述问题,本发明的目的在于提供一种Linux下本地应用程序嵌入桌面窗体的方法及系统,通过这种方式,使本地应用程序嵌入到桌面窗体,从而不必单独打开本地应用程序,就可以实现对本地应用程序相关内容的操作。本发明解决其问题所采用的技术方案是
Linux下本地应用程序嵌入桌面窗体的方法,包括以下步骤
步骤A,桌面窗体程序通过引入动态链接库封装的调用接口的头文件对调用接口进行调用,从而加载动态链接库;
步骤B,桌面窗体程序通过对动态链接库中函数的调用启动本地应用程序并使本地应用程序窗体嵌入至桌面窗体;
步骤C,动态链接库封装的调用接口转调动态链接库中类继承的本地应用程序接口 ;步骤D,动态链接库中类继承的本地应用程序接口通过Linux下的DBus与本地应用程序进程进行通信,完成对本地应用程序的调用并执行对应的操作。进一步,所述动态链接库封装的调用接口为纯虚类接口。进一步,所述步骤D中,DBus通过在动态链接库中类继承的本地程序接口和本地应用程序进程之间建立DBus连接实现二者之间通信,同时DBus会为此DBus连接命名。进一步,所述为DBus连接命名时,加密后的桌面窗体ID作为名字的一部分。进一步,所述桌面窗体和本地应用程序窗体符合X Window协议。Linux下本地应用程序嵌入桌面窗体的系统,其特征在于,包括DBus通信模块,桌面窗体模块,本地应用程序和动态链接库,其中
动态链接库,包括调用模块和接口模块;
桌面窗体模块,用于启动桌面窗体,桌面窗体调用动态链接库中的调用模块,加载动态链接库;
调用模块,用于调用接口模块,且可以通过调用动态链接库中的函数启动本地应用程序进程,并使本地应用程序窗体嵌入至桌面窗体;
DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用,同时执行相应的操作。进一步,所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时DBus通信模块为此DBus连接命名。进一步,所述DBus通信模块为此DBus连接命名时,加密后的桌面窗体ID作为DBus连接名字的一部分。进一步,所述桌面窗体和本地应用程序窗体符合X Window协议。本发明的有益效果是
本发明采用一种在Linux下本地应用程序嵌入桌面窗体的方法及系统,桌面窗体通过动态链接库中的纯虚类接口加载动态链接库,之后,桌面窗体会通过调用链接库中相关的函数启动本地应用程序并使本地应用程序窗体嵌入到桌面窗体中。之后,动态链接库通过Linux下DBus与本地应用程序进程间通信,实现对本地应用程序的调用。通过这种方式,桌面窗体加载相关本地应用程序时,就可以在桌面窗体内部实现,相比通过打开本地应用程序进行操作,极大缩短了时间,并且使用户操作起来也更加方便。


下面结合附图和实例对本发明作进一步说明。图1是本发明方法的程序流程图。图2是发明系统的结构组成框图。图3是本发明实施例WPS嵌入Qt窗体的程序流程图。
具体实施例方式图1是本发明方法的程序流程图,参照图1所示,包括以下步骤
步骤A,桌面窗体通过引入动态链接库封装的纯虚类接口的头文件对纯虚类接口进行调用,从而加载动态链接库。本步骤中,桌面窗体通过引入动态链接库包括的头文件,就可以对其封装的纯虚类接口进行调用,加载此动态链接库。动态链接库是一个包含可由多个程序同时使用的代码和数据的库,其不属于可执行文件,但进程可以调用动态链接库中不属于可执行代码的函数。步骤B,桌面窗体通过对动态链接库中函数的调用启动本地应用程序并使本地应用程序窗体嵌入至桌面窗体。本步骤中,桌面窗体可以调用动态链接库中设定的函数启动对应的本地应用程序进程,并使本地应用程序窗体嵌入到桌面窗体中。步骤C,动态链接库封装的纯虚类接口转调动态链接库中类继承的本地应用程序接口。本步骤中,动态链接库内的纯虚类接口可以直接调用内部的类继承的本地应用程序接口。步骤D,动态链接库中类继承的本地应用程序接口通过Linux下的DBus与本地应用程序进程进行通信,完成调用并执行相关的操作。本步骤中,Linux下的DBus建立一个DBus连接,同时DBus会为此DBus连接命名,加密后的桌面窗体ID也作为此DBus连接名字的一部分。动态链接库中类继承的本地应用程序接口通过DBus连接实现与本地应用程序进程之间的通信,完成对本地应用程序的调用并执行对应的操作。所述DBus是一个适用于桌面应用的进程间的通讯机制。所述桌面窗体和本地应用程序窗体符合X Window协议
图2是发明系统的结构组成框图,参照图2所示,包括
DBus通信模块,桌面窗体模块,本地应用程序和动态链接库,其中
动态链接库,包括调用模块和接口模块;
桌面窗体模块,用于启动桌面窗体,桌面窗体调用动态链接库中的调用模块,加载动态链接库;
调用模块,用于调用接口模块,且可以通过调用动态链接库中的函数启动本地应用程序进程,并使本地应用程序窗体嵌入至桌面窗体;
DBus通信模块,通过建立DBus连接实现接口模块与本地应用程序之间的通信,完成接口模块对本地应用程序的调用,同时执行相应的操作。DBus通信模块在建立DBus连接时,会为此DBus连接命名,且加密后的桌面窗体ID作为DBus连接名字的一部分。由于桌面窗体ID是唯一的,就保证了多个桌面窗体分别启动本地应用程序时互不影响,对桌面窗体ID加密后,使每次启动的服务名字都不同,其它程序就无法使用此服务名字。所述桌面窗体和本地应用程序窗体均符合X Window协议。需要说明的是,所述本地应用程序包括但不限于控制台程序、办公软件程序、TOF浏览器等,且本地应用程序有对应的窗体程序。通过这种方式,桌面窗体模块可以在窗体内部实现对本地应用程序的调用并完成对应的操作,这样用户不仅会感觉操作简单方便,同时也节约了时间,
参照图3所示的WPS嵌入Qt窗体的程序流程图,包括Linux操作系统和动态链接库,其中本实施例选取Qt窗体作为桌面窗体、WPS作为本地应用程序进行说明。动态链接库封装有纯虚类的接口,并且定义了类继承WPS内的接口。包括以下步骤
步骤A,Qt窗体程序通过引入动态链接库封装的纯虚类接口文件调用纯虚类接口,从而加载动态链接库;
步骤B,Qt窗体程序通过调用链接库相关函数启动WPS并WPS窗体嵌入到Qt窗体内; 步骤C,动态链接库封装的纯虚类接口转调动态链接库中类继承的WPS接口;
步骤D,动态链接库中类继承的WPS接口通过Linux下DBus与WPS进程间通信,实现对WPS的调用并完成相关的操作。所述WPS开放了一套API接口,API是一个树形结构,最顶端的Api是Application,其他的API都算是它的下级。所以要通过一些API去完成一些功能,就要先得到最顶端的API对象。然后通过这个Application —级一级往下找,再找到我们需要的API。正是由于WPS的这种API结构,如果要调用WPS相关的API,就必须保证调用两端接口一致。因此,动态链接库中类继承的WPS接口同样会保持与WPS的API —致的树形结构。Qt是一个跨平台的C++图形用户界面库,包括丰富了 API函数。Qt窗体是Qt开发的一种窗体应用,Qt窗体程序通过引入动态链接库封装的纯虚类接口头文件可以调用纯虚类接口,加载动态链接库。加载完成后,Qt窗体程序会通过调用动态链接库中相关的函数启动WPS并使WPS嵌入至Qt窗体中,之后,动态链接库中的纯虚类接口会转调对应的动态链接库中的类继承的WPS接口。WPS嵌入至Qt窗体是通过WPS内部主窗口继承由Qt窗体提供的QXllEmbedWidge类实现的,且Qt窗体与WPS均符合X Window协议。所述X Window协议是标准化软件工具包及显示架构的运作协议。动态链接库中类继承的WPS接口通过Linux下DBus与WPS进程间通信实现对WPS的调用并完成相关的操作,所述DBus是一种高级的进程间通信机制。动态链接库会把调用命令打包成消息,所述消息包括传送者,接收者和消息实体。DBus会根据消息提供的服务名字和路径名字在动态链接库和对应的WPS进程之间建立对应的DBus连接,同时为此DBus连接命名。每个Qt窗体都有一个唯一的ID,为了使同时启动多个Qt窗体时调用WPS不受影响,在为DBus连接命名时,Qt窗体ID也被加入进去,这样就保证了每次启动的服务名字是不同的,为了不让其它程序使用此服务名字,可以给Qt窗体ID加密,使其它程序无法使用此服务名字。操作完成后或者关闭Qt窗体时,退出WPS即可。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
权利要求
1.Linux下本地应用程序嵌入桌面窗体的方法,其特征在于,包括以下步骤步骤A,桌面窗体程序通过引入动态链接库封装的调用接口的头文件对调用接口进行调用,从而加载动态链接库;步骤B,桌面窗体程序通过对动态链接库中函数的调用启动本地应用程序并使本地应用程序窗体嵌入至桌面窗体;步骤C,动态链接库封装的调用接口转调动态链接库中类继承的本地应用程序接口 ;步骤D,动态链接库中类继承的本地应用程序接口通过Linux下的DBus与本地应用程序进程进行通信,完成对本地应用程序的调用并执行对应的操作。
2.根据权利要求1所述的Linux下本地应用程序嵌入桌面窗体的方法,其特征在于 所述动态链接库封装的调用接口为纯虚类接口。
3.根据权利要求1所述的Linux下本地应用程序嵌入桌面窗体的方法,其特征在于 所述步骤D中,DBus通过在动态链接库中类继承的本地程序接口和本地应用程序进程之间建立DBus连接实现二者之间通信,同时DBus会为此DBus连接命名。
4.根据权利要求3所述的Linux下本地应用程序嵌入桌面窗体的方法,其特征在于 所述为此DBus连接命名时,加密后的桌面窗体ID作为名字的一部分。
5.根据权利要求1至4任一所述的Linux下本地应用程序嵌入桌面窗体的方法,其特征在于所述桌面窗体和本地应用程序窗体符合X Window协议。
6.Linux下本地应用程序嵌入桌面窗体的系统,其特征在于,包括DBus通信模块,桌面窗体模块,本地应用程序和动态链接库,其中动态链接库,包括调用模块和接口模块;桌面窗体模块,用于启动桌面窗体,桌面窗体调用动态链接库中的调用模块,加载动态链接库;调用模块,用于调用接口模块,且可以通过调用动态链接库中的函数启动本地应用程序进程,并使本地应用程序窗体嵌入至桌面窗体;DBus通信模块,用于在接口模块和本地应用程序之间建立通信,实现接口模块对本地应用程序的调用,同时执行相应的操作。
7.根据权利要求6所述的Linux下本地应用程序嵌入桌面窗体的系统,其特征在于 所述DBus通信模块通过建立DBus连接实现接口模块与本地应用程序之间的通信,同时 DBus通信模块为此DBus连接命名。
8.根据权利要求7所述的Linux下本地应用程序嵌入桌面窗体的系统,其特征在于 所述DBus通信模块为此DBus连接命名时,加密后的桌面窗体ID作为DBus连接名字的一部分。
9.根据权利要求6至8任一所述的Linux下本地应用程序嵌入桌面窗体的系统,其特征在于所述桌面窗体和本地应用程序窗体符合X Window协议。
全文摘要
本发明公开了一种在Linux下本地应用程序嵌入桌面窗体的方法及系统,首先桌面窗体加载动态链接库,加载后通过调用动态链接库中的函数启动本地程序并本地应用程序窗体嵌入到桌面窗体中,之后,动态链接库通过Linux下DBus与本地应用程序进程进行通信实现对本地应用程序的调用并完成对应的操作。这种方式使桌面窗体在调用本地应用程序时不用打开本地应用程序,直接通过调用就可以实现,缩短了时间,简化了操作,用户用起来会感觉方便和快捷。
文档编号G06F9/44GK103019748SQ20131001542
公开日2013年4月3日 申请日期2013年1月15日 优先权日2013年1月15日
发明者詹欣坤, 陈旺, 刘强 申请人:珠海金山办公软件有限公司, 北京金山办公软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1