掌桥专利:专业的专利平台
掌桥专利
首页

基于Windows系统的应用程序控制方法、装置、设备和存储介质

文献发布时间:2023-06-19 09:40:06


基于Windows系统的应用程序控制方法、装置、设备和存储介质

技术领域

本申请涉及计算机技术领域,尤其是涉及一种基于Windows系统的应用程序控制方法、装置、设备和存储介质。

背景技术

计算机已经普及到日常工作、生活的各个方面,上班族、学生只要一打开电脑,基本上90%以上都需要使用办公软件,无论是起草文件、撰写报告还是统计分析数据,办公软件已经成为工作必备的基础软件。很多情况下,需同时运行多个办公软件,这样在不同办公软件间切换和进行数据交互成为必须。由于电脑屏幕的限制,导致部分软件不能同时显示在桌面上,频繁地切换各个办公软件会导致办公效率的降低,操作起来极其不方便。

发明内容

为了避免由于频繁切换多个办公软件而导致办公效率降低的问题,本申请提供一种基于Windows系统的应用程序控制方法、装置、设备和存储介质。

第一方面,本申请提供了一种基于Windows系统的应用程序控制方法,包括:调用Windows系统中的GetWindowText函数,获取当前运行的应用程序的列表;在所述列表中选定一个或多个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序;配置所述列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数;基于所述窗口大小、所述显示位置以及所述优先级参数,调用Windows系统中的SetWindowPos函数,在一个或多个所述主程序的窗口之前置顶显示所述待显示的辅助程序的窗口。

优选的,所述在多个所述主程序的窗口之前置顶显示所述待显示的辅助程序的窗口之前,包括:根据屏幕大小、每个所述主程序的窗口大小,以所述屏幕的中心点为分界点平均分配每个所述主程序的窗口的显示区域,以平铺的形式展示多个所述主程序的窗口。

优选的,所述获取当前运行的应用程序的列表之后,还包括:调用Windows系统中的GetWindowText函数,以预设频率获取新打开的所述应用程序,并将其按照时间先后顺序添加入所述列表;或者根据需要将所述应用程序添加入所述列表。

优选的,所述配置所述列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数包括:配置所述列表中待显示的所述辅助程序的窗口的宽度和窗口高度,以实现对所述待显示的辅助程序的窗口大小的配置;以某个所述主程序窗口的中心位置为坐标原点建立二维坐标系,配置所述辅助程序窗口的中心位置在所述二维坐标系中的坐标,以实现对所述待显示的辅助程序的显示位置的配置;配置所述待显示的辅助程序的wFlags参数,以实现对所述待显示的辅助程序的优先级参数的配置。

优选的,所述在一个或多个所述主程序的窗口之前置顶显示所述待显示的辅助程序的窗口之后,还包括:响应于切换指令,隐藏或呼出所述待显示的辅助程序的窗口。

第二方面,本申请提供了一种基于Windows系统的应用程序控制装置,包括:列表获取模块,用于调用Windows系统中的GetWindowText函数,获取当前运行的应用程序的列表;程序选定模块,用于在所述列表中选定一个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序;参数配置模块,用于配置所述列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数;窗口显示模块,用于基于所述窗口大小、所述显示位置以及所述优先级参数,调用Windows系统中的SetWindowPos函数,在一个或多个所述主程序的窗口之前置顶显示所述待显示的辅助程序的窗口。

优选的,还包括:窗口位置配置模块,用于根据屏幕大小、每个所述主程序的窗口大小,以所述屏幕的中心点为分界点平均分配每个所述主程序的窗口的显示区域,以平铺的形式展示多个所述主程序的窗口。

优选的,还包括:程序添加模块,用于调用Windows系统中的GetWindowText函数,以预设频率获取新打开的所述应用程序,并将其按照时间先后顺序添加入所述列表;或者用于根据需要将所述应用程序添加入所述列表。

优选的,所述参数配置模块包括:窗口大小配置单元,用于配置所述列表中待显示的所述辅助程序的窗口的宽度和窗口高度,以实现对所述待显示的辅助程序的窗口大小的配置;窗口位置配置单元,用于以所述主程序窗口的中心位置为坐标原点建立二维坐标系,配置所述辅助程序窗口的中心位置在所述二维坐标系中的坐标,以实现对所述待显示的辅助程序的显示位置的配置;窗口参数配置单元,用于配置所述待显示的辅助程序的wFlags参数,以实现对所述待显示的辅助程序的优先级参数的配置。

优选的,还包括:窗口切换模块,用于响应于切换指令,隐藏或呼出所述待显示的辅助程序的窗口。

第三方面,本申请提供了一种终端设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如第一方面中任一项所述的方法。

第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面中任一项所述的方法。

在本申请实施例提供的基于Windows系统的应用程序控制方法、装置、设备和存储介质中,通过GetWindowText函数获取当前运行的应用程序的列表,在列表中选定一个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序,配置列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数,基于窗口大小、显示位置以及优先级参数,调用Windows系统中的SetWindowPos函数,在主程序的窗口之前置顶显示待显示的辅助程序的窗口,从而能够避免辅助程序因为失去焦点而被主程序遮盖或消失,同时也摆脱了电脑屏幕的限制,避免频繁地在多个办公软件之间切换,有效地提高了工作效率。

应当理解,发明内容部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本申请实施例的基于Windows系统的应用程序控制方法的流程示意图;

图2示出了本申请实施例的基于Windows系统的应用程序控制装置的方框示意图;

图3示出了适于用来实现本申请实施例的终端设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。

随着计算机的普及我们的工作、学习和生活都离不开电脑。由于工作、学习环境的不同,使用电脑的场景也不同,甚至操作系统也不同。

Windows 8系统之下的系统,例如Windows 7系统很难实现多软件办公。

Windows 8系统之上的系统,例如Windows 10系统具有页面分屏供能,能够解决同时使用多办公软件的问题,但是其多办公软件的位置不可控、不能达到理想的置顶效果。

为解决上述的问题,本申请实施例提供了一种基于Windows系统的应用程序控制方法、装置、设备和存储介质。

下面结合附图来对本申请的技术方案进行详细地介绍。

图1示出了本申请实施例的基于Windows系统的应用程序控制方法的流程示意图。如图1所示,基于Windows系统的应用程序控制方法包括以下步骤:

步骤102,调用Windows系统中的GetWindowText函数,获取当前运行的应用程序的列表。

GetWindowText函数,能够将指定窗口的标题条文本拷贝到一个缓存区内。该函数的原型为:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);

其中:HWND hWnd为带文本的窗口或控件的句柄。

在通过GetWindowText函数获取进程或控件的句柄时,如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控件发送WM_GETTEXT消息;如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowText返回窗口的标题文本,若窗口无标题,则函数返回空字符串。

在本实施例中,通过GetWindowText函数获取当前运行的应用程序的列表时,可以通过GetWindowText函数给当前运行的应用程序发送WM_GETTEXT消息,以将当前运行的应用程序的标题条文本拷贝到一个缓存区内,形成列表。在该列表中,例如可以以由GetWindowText函数获取得到的应用程序的标题条文本的时间先后顺序来对列表中的应用程序进行排序。

在需要向上述的列表中添加新的应用程序时,可以采用自动或者手动的方式来进行添加。

例如在采用自动的方式来向列表中添加新的应用程序时,可以继续调用GetWindowText函数,并以预设频率获取新打开的应用程序的标题条文本,将其按照获取的时间先后顺序添加入列表中。需要说明的是,预设频率可以根据需要来进行设置,例如可以为每15分钟获取一次或者每30分钟设置一次。

例如在采用手动的方式来向列表中添加新的应用程序时,可以根据实际办公的需要,将需要用到的应用程序添加入列表中。当然,采用手动方式添加,可以按照应用程序被打开的时间先后顺序来进行添加,也可以按照使用的优先级来先后向列表中添加,本申请实施例对此不作限定。

步骤104,在列表中选定一个或多个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序。

列表中存储有应用程序的标题条文本,在选定主程序和/或辅助程序时,可以选定对应应用程序的标题条文本即可。在一些实施例中,在未选定主程序和/或辅助程序时,列表中的应用程序的标题条文本是按照添加的时间先后顺序进行排列,在选定了主程序后,对应主程序的标题条文本不参与对应其余应用程序的标题条文本的排序。

在一个例子中,列表中例如存储有图片查看器的标题条文本、Excel工具的标题条文本以及Word工具的标题条文本,在需要参照图片上的内容和Excel表格中的数据来编辑Word工具中的内容时,可以将Word工具选定为主程序,将图片查看器和/或Excel工具作为辅助程序,那么在列表中,图片查看器对应的标题条文本和Excel工具对应的标题条文本可以按照添加的时间先后顺序进行排序,Word工具对应的标题条文本不参与排序。

步骤106,配置列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数。

在配置列表中待显示的辅助程序的窗口大小时,可以配置列表中待显示的辅助程序的敞口的宽度w和高度h,宽度w和高度h的具体数据,此处不作限定,其可以参考主程序的窗口大小来进行设置,也可以根据需要来进行设置。

在配置列表中待显示的辅助程序的显示位置时,可以以主程序窗口的中心位置为坐标原点建立二维坐标系,可以以待显示的辅助程序窗口的中心位置的坐标来表示待显示的辅助程序的坐标,那么配置列表中待显示的应用程序的显示位置就可以通过配置待显示的应用程序窗口的中心坐标(x,y)来实现。

不仅可以以主程序窗口的中心位置为坐标原点建立二维坐标系,还可以以出程序窗口的左上角、左下角、右上角、右下角或窗口内的其他位置为原点来建立二维坐标系。同时,不仅可以以待显示的辅助程序窗口的中心位置的坐标来表示待显示的辅助程序的坐标,还可以以待显示的辅助程序窗口的左上角、左下角、右上角、右下角或窗口内的其他位置来表示待显示的辅助程序的坐标。

当然,还可以以桌面为参照来配置待显示的辅助程序的显示位置,例如以桌面上任意位置为原点建立二维坐标系,可以分别配置主程序窗口和辅助程序窗口在该二维坐标系内的显示位置,主程序窗口的显示位置配置方法与辅助程序窗口的显示位置配置方法相同,此处不再赘述。

在配置列表中待显示的辅助程序的优先级参数时,可以配置待显示的辅助程序的wFlags参数。关于待显示的辅助程序的wFlags参数的配置将在下文中进行介绍。

步骤108,基于窗口大小、显示位置以及优先级参数,调用Windows系统中的SetWindowPos函数,在一个或多个主程序的窗口之前置顶显示待显示的辅助程序的窗口。

SetWindowPos函数,能够改变一个子窗口、弹出式窗口及顶层窗口的尺寸、位置和z序列,个子窗口、弹出式窗口及顶层窗口在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为z序的第一个窗口。

该函数原型为:

BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int x,int y,int w,inth,UNIT.Flags);

其中:

HWND hWnd为待显示的辅助程序的窗口句柄;

int x为待显示的辅助程序的x轴坐标;

int y为待显示的辅助程序的y轴坐标;

int w为待显示的辅助程序的宽度;

int h为待显示的辅助程序的高度;

UNIT.Flags为待显示的辅助程序的窗口定位标识。

UNIT.Flags中包含有SWP_SHOWWINDOW和SWP_HIDEWINDOW,通过设置SWP_SHOWWINDOW和SWP_HIDEWINDOW可以使得其对应的窗口成为最顶层窗口。上文中配置待显示的辅助程序的wFlags参数,即配置SWP_SHOWWINDOW和SWP_HIDEWINDOW的值。

那么,在选定一个应用程序作为主程序时,基于窗口大小、显示位置以及优先级参数,调用Windows系统中的SetWindowPos函数,在主程序的窗口之前置顶显示待显示的辅助程序的窗口,即将配置的待显示的应用程序的坐标(x,y)、大小(w,h)和wFlags参数写入SetWindowPos函数,以使得待显示的应用程序的窗口成为最顶层窗口,从而使得在主程序的窗口之前始终置顶显示待显示的辅助程序的窗口,避免了由于在对主程序进行操作时主程序窗口覆盖辅助程序窗口的问题。

在一些应用场景中,例如在需要参照图片上的内容和Excel表格中的数据来编辑Word工具中的内容时,使用者选定Word工具为主程序、图片查看器和Excel工具为辅助程序,可以分别设置上述两辅助程序的大小、位置坐标及优先级参数,通过调用Windows系统中的SetWindowPos函数,使其分别显示在Word工具窗口的左上角和右上角,使用者在参照图片上的内容和Excel表格中的数据来编辑Word工具中的内容时,此时图片查看器和Excel工具不会因为失去焦点而被Word工具的窗口遮盖和消失。

在选定多个应用程序作为主程序时,可以根据屏幕的大小、每个主程序的窗口大小,以屏幕的中心点为分界点平均分配每个主程序的窗口的显示区域,以平铺的形式展示多个主程序窗口。

例如,当选定两个应用程序作为主程序时,可以以屏幕的中心点为分界点,将中心点左右两侧的区域分别划分为两个主程序的显示区域;也可以以屏幕的中心点为分界点,将中心点上下两侧的区域分别划分为两个主程序的显示区域,同时,改变主程序的窗口的大小,以使得主程序的窗口能够适配与其对应的显示区域。

当然,选定三个或三个以上的主程序时,可以将屏幕以中心点为分界点划分为相应数量的显示区域即可。

在主程序为多个时,可以以某个主程序的中心位置为坐标原点建立二维坐标系,辅助程序的配置方式与上述选定一个主程序时的配置方式相同,此处不再赘述。

需要说明的是,多个主程序可以共享选定的一个或多个辅助程序,也可以为每个主程序单独配置与其对应的辅助程序。

为了方便辅助程序窗口的显示和隐藏,可以设置快捷键来呼出和隐藏辅助程序窗口,例如快捷键包括但不限于shift+w。在快捷键被按下时,系统会发出切换指令,根据该切换指令来隐藏或呼出待显示的辅助程序的窗口。当然,在主程序为多个时,可以为每个主程序配置相应的快捷键。

在一些实施例中,为了防止误触快捷键而导致隐藏窗口被呼出或隐藏,可以将快捷键配置为长按3秒后,系统发出切换指令,从而能够防止由于误操作而导致辅助程序窗口被呼出或隐藏。

根据本申请的实施例,通过GetWindowText函数获取当前运行的应用程序的列表,在列表中选定一个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序,配置列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数,基于窗口大小、显示位置以及优先级参数,调用Windows系统中的SetWindowPos函数,在主程序的窗口之前置顶显示待显示的辅助程序的窗口,从而能够避免辅助程序因为失去焦点而被主程序遮盖或消失,同时也摆脱了电脑屏幕的限制,避免频繁地在多个办公软件之间切换,有效地提高了工作效率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。

图2示出了本申请实施例的基于Windows系统的应用程序控制装置的方框示意图。如图2所示,基于Windows系统的应用程序控制装置包括:

列表获取模块205,用于调用Windows系统中的GetWindowText函数,获取当前运行的应用程序的列表。

程序选定模块210,用于在列表中选定一个应用程序作为主程序,选定另一个或另多个应用程序作为辅助程序。

参数配置模块215,用于配置列表中待显示的辅助程序的窗口大小、显示位置以及优先级参数。

窗口显示模块220,用于基于窗口大小、显示位置以及优先级参数,调用Windows系统中的SetWindowPos函数,在主程序的窗口之前置顶显示待显示的辅助程序的窗口。

在一些实施例中,该装置还包括:

程序添加模块,用于调用Windows系统中的GetWindowText函数,以预设频率获取新打开的应用程序,并将其按照时间先后顺序添加入所述列表;或者用于根据需要将应用程序添加入所述列表。

在一些实施例中,参数配置模块215包括:

窗口大小配置单元,用于配置列表中待显示的辅助程序的窗口的宽度和窗口高度,以实现对待显示的辅助程序的窗口大小的配置;

窗口位置配置单元,用于以主程序窗口的中心位置为坐标原点建立二维坐标系,配置辅助程序窗口的中心位置在二维坐标系中的坐标,以实现对待显示的辅助程序的显示位置的配置;

窗口参数配置单元,用于配置待显示的辅助程序的wFlags参数,以实现对待显示的辅助程序的优先级参数的配置。

在一些实施例中,该装置还包括:

窗口切换模块,用于响应于切换指令,隐藏或呼出待显示的辅助程序的窗口。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

图3示出了适于用来实现本申请实施例的终端设备的结构示意图。

如图3所示,终端设备包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有系统操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。

以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。

特别地,根据本申请的实施例,上文参考流程图图1描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括列表获取模块、程序选定模块和参数配置模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,列表获取模块还可以被描述为“用于调用Windows系统中的GetWindowText函数,获取当前运行的应用程序的列表的模块”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的基于Windows系统的应用程序控制方法。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 基于Windows系统的应用程序控制方法、装置、设备和存储介质
  • 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
技术分类

06120112255708