CN103019748A - Linux下本地应用程序嵌入桌面窗体的方法及系统 - Google Patents

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

Info

Publication number
CN103019748A
CN103019748A CN2013100154240A CN201310015424A CN103019748A CN 103019748 A CN103019748 A CN 103019748A CN 2013100154240 A CN2013100154240 A CN 2013100154240A CN 201310015424 A CN201310015424 A CN 201310015424A CN 103019748 A CN103019748 A CN 103019748A
Authority
CN
China
Prior art keywords
local application
forms
dbus
dynamic link
link library
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
CN2013100154240A
Other languages
English (en)
Other versions
CN103019748B (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.)
Zhuhai Kingsoft Office Software Co Ltd
Original Assignee
Beijing Kingsoft Office Software Inc
Zhuhai Kingsoft Office 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 Beijing Kingsoft Office Software Inc, Zhuhai Kingsoft Office Software Co Ltd filed Critical Beijing Kingsoft Office Software Inc
Priority to CN201310015424.0A priority Critical patent/CN103019748B/zh
Publication of CN103019748A publication Critical patent/CN103019748A/zh
Application granted granted Critical
Publication of CN103019748B publication Critical patent/CN103019748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种在Linux下本地应用程序嵌入桌面窗体的方法及系统,首先桌面窗体加载动态链接库,加载后通过调用动态链接库中的函数启动本地程序并本地应用程序窗体嵌入到桌面窗体中,之后,动态链接库通过Linux下DBus与本地应用程序进程进行通信实现对本地应用程序的调用并完成对应的操作。这种方式使桌面窗体在调用本地应用程序时不用打开本地应用程序,直接通过调用就可以实现,缩短了时间,简化了操作,用户用起来会感觉方便和快捷。

Description

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协议。
需要说明的是,所述本地应用程序包括但不限于控制台程序、办公软件程序、PDF浏览器等,且本地应用程序有对应的窗体程序。通过这种方式,桌面窗体模块可以在窗体内部实现对本地应用程序的调用并完成对应的操作,这样用户不仅会感觉操作简单方便,同时也节约了时间, 
参照图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窗体提供的QX11EmbedWidge类实现的,且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即可。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

Claims (9)

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协议。
CN201310015424.0A 2013-01-15 2013-01-15 Linux下本地应用程序嵌入桌面窗体的方法及系统 Active CN103019748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310015424.0A CN103019748B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序嵌入桌面窗体的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310015424.0A CN103019748B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序嵌入桌面窗体的方法及系统

Publications (2)

Publication Number Publication Date
CN103019748A true CN103019748A (zh) 2013-04-03
CN103019748B CN103019748B (zh) 2015-11-18

Family

ID=47968386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310015424.0A Active CN103019748B (zh) 2013-01-15 2013-01-15 Linux下本地应用程序嵌入桌面窗体的方法及系统

Country Status (1)

Country Link
CN (1) CN103019748B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731592A (zh) * 2015-03-24 2015-06-24 无锡天脉聚源传媒科技有限公司 一种在应用程序中集成Bonjour服务的方法和装置
CN106708999A (zh) * 2016-12-20 2017-05-24 北京金山安全软件有限公司 一种新闻显示方法、装置及电子设备
CN107577578A (zh) * 2017-09-15 2018-01-12 郑州云海信息技术有限公司 统计nfs操作字时延的方法、装置、设备以及存储介质
CN109901826A (zh) * 2019-03-01 2019-06-18 上海极威信息科技有限公司 用于Java程序的数据处理方法、装置和电子设备
CN112835788A (zh) * 2021-01-13 2021-05-25 哈尔滨工程大学 一种评估Linux应用程序与操作系统兼容性的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630256A (zh) * 2009-08-27 2010-01-20 浙江大学 多模医学影像信息处理系统及滤波器的实现方法
US20100088689A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Branding binary modules using resource patching
CN101917509A (zh) * 2010-06-22 2010-12-15 中科方德软件有限公司 一种基于Linux的MID平台下的电话系统及其实现方法
EP2477110A1 (en) * 2011-01-14 2012-07-18 Wibu-Systems AG Method for protecting an application program against reverse engineering and related computer program product

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088689A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Branding binary modules using resource patching
CN101630256A (zh) * 2009-08-27 2010-01-20 浙江大学 多模医学影像信息处理系统及滤波器的实现方法
CN101917509A (zh) * 2010-06-22 2010-12-15 中科方德软件有限公司 一种基于Linux的MID平台下的电话系统及其实现方法
EP2477110A1 (en) * 2011-01-14 2012-07-18 Wibu-Systems AG Method for protecting an application program against reverse engineering and related computer program product

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731592A (zh) * 2015-03-24 2015-06-24 无锡天脉聚源传媒科技有限公司 一种在应用程序中集成Bonjour服务的方法和装置
CN104731592B (zh) * 2015-03-24 2017-12-15 无锡天脉聚源传媒科技有限公司 一种在应用程序中集成Bonjour服务的方法和装置
CN106708999A (zh) * 2016-12-20 2017-05-24 北京金山安全软件有限公司 一种新闻显示方法、装置及电子设备
CN107577578A (zh) * 2017-09-15 2018-01-12 郑州云海信息技术有限公司 统计nfs操作字时延的方法、装置、设备以及存储介质
CN107577578B (zh) * 2017-09-15 2022-02-18 郑州云海信息技术有限公司 统计nfs操作字时延的方法、装置、设备以及存储介质
CN109901826A (zh) * 2019-03-01 2019-06-18 上海极威信息科技有限公司 用于Java程序的数据处理方法、装置和电子设备
CN109901826B (zh) * 2019-03-01 2022-06-10 上海极威信息科技有限公司 用于Java程序的数据处理方法、装置和电子设备
CN112835788A (zh) * 2021-01-13 2021-05-25 哈尔滨工程大学 一种评估Linux应用程序与操作系统兼容性的方法
CN112835788B (zh) * 2021-01-13 2023-10-27 哈尔滨工程大学 一种评估Linux应用程序与操作系统兼容性的方法

Also Published As

Publication number Publication date
CN103019748B (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
US11722860B2 (en) Messaging system interacting with dynamic extension app
CN103413089B (zh) 移动终端及其实现双系统的方法
CN103019748A (zh) Linux下本地应用程序嵌入桌面窗体的方法及系统
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
US10474454B2 (en) System and method for updating a trusted application (TA) on a device
CN103176789A (zh) 一种实现开放平台功能扩展的方法及系统
JP2005518015A (ja) 移動体端末用プラットフォーム・システムのミドルウエア・サービス・レイヤ
CN103744669A (zh) 安卓系统Activity插件的创建、调用方法及系统
CN106295255A (zh) 应用程序的加固方法和装置
CN107291456A (zh) 一种多屏显示的控制方法及系统
US20120166979A1 (en) Method and Apparatus for Enabling User Interface Customization
CN103970563A (zh) 动态加载安卓类的方法
CN103064738A (zh) Linux下本地应用程序窗体嵌入浏览器的方法及系统
CN104461503A (zh) 动态组成软件界面的方法与系统
CN107102853A (zh) 一种定制化移动操作系统兼容Android应用的方法
CN103164207A (zh) 基于安卓系统的跨硬件平台的应用程序开发方法和系统
CN105138399A (zh) 跨平台移动Web应用运行引擎
CN106557350B (zh) 应用程序安装包中java字节码转换方法、装置及设备
CN102983889A (zh) 智能手机与电脑之间通过蓝牙无线配对协同处理信息的方法
CN105487868B (zh) 实现安卓设备虚拟按键隐藏和显示的方法和系统
CN106201466A (zh) 一种基于heat的模板管理方法
CN103257788A (zh) 一种windows桌面动态图标形成方法
CN109144520B (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
CN105550046B (zh) 虚拟操控的方法、装置及系统
WO2016061921A1 (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
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee after: Zhuhai Kingsoft Office Software Co., Ltd.

Patentee after: Beijing Kingsoft office software Limited by Share Ltd

Address before: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee before: Zhuhai Kingsoft Office Software Co., Ltd.

Patentee before: Beijing Kingsoft WPS Office Co., Ltd.

TR01 Transfer of patent right

Effective date of registration: 20210423

Address after: 519015 Jinshan Software Park Building No. 5, 321 Qiandao Ring Road, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ZHUHAI KINGSOFT OFFICE SOFTWARE Co.,Ltd.

Address before: Jinshan software building No. 8 Jingshan Hill Road, Lane 519015 Lianshan Jida Zhuhai city in Guangdong Province

Patentee before: ZHUHAI KINGSOFT OFFICE SOFTWARE Co.,Ltd.

Patentee before: BEIJING KINGSOFT OFFICE SOFTWARE Co.,Ltd.

TR01 Transfer of patent right