基于Windows操作系统对多路外部设备的输入的处理方法及系统的制作方法

文档序号:6366430阅读:133来源:国知局
专利名称:基于Windows操作系统对多路外部设备的输入的处理方法及系统的制作方法
技术领域
本发明涉及多媒体技术领域,尤其涉及基于Windows操作系统对多路外部设备的输入的处理方法及系统。
背景技术
安装了 Windows操作系统的计算机服务器在受理多个终端的外部设备(如键盘、鼠标、游戏杆等)的操作请求或者计算机服务器本地连接多个外部设备时,不会区分和记录同一类外部设备中具体是哪ー个外部设备对应用程序执行的操作。比如,一台服务器在本地连接了多个鼠标(包括有线鼠标、无线鼠标、触控鼠标、摇杆鼠标等),使用这些鼠标同时进行操作,服务器能够响应所有的操作,但是服务器对每个外部设备的操作的处理结果是杂乱无序的。 如图I所示,为现有技术中外部设备在本地接入服务器执行操作时的消息处理示意图,图I中外部设备1,2,……,N,包括键盘、鼠标、游戏杆等。服务器提供的外部设备接入口,可以是USB接ロ,也可以是PS/2接ロ。外部设备首次插入接ロ,服务器需要安装相应驱动,可以是USB驱动,也可以是PS/2驱动;只要该类外部设备在该接ロ安装过驱动,之后再接入,不需要再次安装驱动即可直接使用。外部设备的所有操作对应的操作描述符,经接ロ传递给对应的驱动,由驱动将操作描述符解析成操作指令信息,再发送给中间件,由中间件处理所有的操作指令信息,中间件可以为DInput. dll/user32. dll。在图I中USB接ロ、PS/2接ロ、USB驱动、PS/2驱动以及中间件均位于服务器中。服务器接收到终端外部设备发送的操作描述符,相应的驱动将该操作描述符解析成操作指令信息发送到中间件,中间件统一保存每个外部设备对应的操作指令信息,但是中间件只是按照时间顺序统ー接收、保存外部设备的操作指令信息,无法区分每个操作指令信息是哪个外部设备发送的、针对哪个应用程序的操作指令信息。当应用程序需要获取操作指令信息(中间件被动方式),或者中间件将操作指令信息发送给应用程序(中间件主动方式)时,应用程序按照中间件中保存的操作指令信息的顺序,依次获取每个操作指令信息,即使该操作指令信息并不是针对该应用程序的,由于服务器无法区分每个应用程序的操作指令信息,应用程序也只能获取该操作指令信息,从而造成对应用程序的乱操作。根据上述本地连接有多个外部设备的服务器后执行操作的消息处理流程可知,对于同一台服务器来说,当该服务器通过网络方式连接多个终端,每个终端连接相应的外部设备时,每个終端外部设备的操作描述符通过网络发送到服务器,服务器接收到操作描述符后,将操作描述符解析为对应的操作指令信息,后续的处理过程,与服务器针对本地连接的外部设备的控制过程相同。因此当多个终端通过网络与服务器连接时,服务器也会由于没办法区分每个终端外部设备的输入,造成对每个终端应用程序的乱操作。由于在现有技术中服务器无法同时针对多个外部设备的输入提供服务,为了避免误操作,只能设置多个服务器,每个服务器处理ー套外部设备的请求。但是该方法浪费了大量的资源,无法满足大容量用户群的需求。

发明内容
本发明实施例提供基于Windows操作系统对多路外部设备的输入的处理方法及系统,以提出ー种支持多路外部设备控制多路应用程序的解决方案。一方面,本发明实施例提供了基于Windows操作系统对多路外部设备的输入的处理方法,所述方法包括针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,其中该操作控制信息中携帯所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息;针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。可选的,在本发明ー实施例中,所述获取该外部设备对对应的应用程序的操作控制信息包括应用控制代理接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携帯该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符对应的操作指令信息;或,应用控制代理接收与每个硬件接ロ连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息。可选的,在本发明ー实施例中,所述针对每个应用程序的标识信息保存其对应的每个操作指令信息包括中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域,当判断未为该标识信息的应用程序创建共享内存区域吋,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息;或,中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。可选的,在本发明ー实施例中,所述根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理包括所述中间件按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识 信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,所述中间件按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携帯的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理;或,所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携帯的应用程序的标识信息,查找携帯该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的操作指令信息发送给该标识信息的应用程序进行处通。可选的,在本发明ー实施例中,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括中间件接收每个标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给该外部设备对 应的终端进行显示。可选的,在本发明ー实施例中,当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括中间件接收该标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与每个外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。另ー方面,本发明实施例提供了基于Windows操作系统对多路外部设备的输入的处理系统,所述系统包括应用控制代理模块,用于针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,并将所述操作控制信息发送给中间件,其中该操作控制信息中携帯所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息;中间件,用于接收应用控制代理模块发送的操作控制信息,针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;采集编码模块,用于根据中间件保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。可选的,在本发明ー实施例中,所述应用控制代理模块,具体用于接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携帯该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符对应的操作指令信息;或,所述应用控制代理模块,具体用于接收与每个硬件接ロ连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息。可选的,在本发明ー实施例中,所述中间件,具体用于接收应用控制代理模块发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域,当判断未为该标识信息的应用程序创建共享内存区域吋,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息;或,所述中间件,具体用于接收应用控制代理模块发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。可选的,在本发明ー实施例中,所述中间件,进ー步用于按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步用于接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携帯的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理;或,所述中间件,进ー步用于按照设定的时间周期轮询每个操作控制信息,根据每个操作控 制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步用于接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携帯的应用程序的标识信息,查找携帯该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的该操作指令信息发送给该标识信息的应用程序进行处理。可选的,在本发明ー实施例中,所述中间件,进ー步用于接收每个标识信息的应用程序发送的处理结果;所述采集编码模块,进ー步用于根据中间件保存的应用程序的标识信息与外部设备的识别信息的对应关系,采集该标识信息的应用程序的处理結果,将处理结果编码后发送给该外部设备对应的终端进行显示。可选的,在本发明ー实施例中,所述中间件,还用于当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,保存应用程序的标识信息与每个外部设备的识别信息的对应关系;所述采集编码模块,还用于根据中间件保存的应用程序的标识信息与每个外部设备的识别信息的对应关系,采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。上述技术方案具有如下有益效果提出了在windows操作系统的服务器中多路外部设备对不同应用程序的控制的实现方案,单台服务器可以为多个终端提供互不干扰的外部设备控制功能,即每个終端可以独立地通过外部设备(包括鼠标、键盘、游戏杆等)对运行的应用程序进行操作和控制。并且当服务器本地连接多个外部设备时,每个外部设备也可以独立的操作相应的应用程序,而不出现乱操作的错误。本发明可以满足大容量用户群的需求。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为现有技术中外部设备在本地接入服务器执行操作时的消息处理流程示意图;图2为本发明实施例基于Windows操作系统对多路外部设备的输入的处理方法流程图;图3为本发明实施例基于Windows操作系统对多路外部设备的输入的处理系统结构示意图;图4为本发明应用实例的PC与本地直接相连的多个外部设备之间的交互过程示意图;图5为本发明应用实例的服务器通过终端与多个外部设备之间的交互过程示意图;图6为本发明应用实例应用程序从中间件中获取每个操作指令信息示意图;图7为本发明应用实例中间件将每个操作指令信息发送给应用程序示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。针对上述现有技术处理中存在的问题,本方案提出了服务器支持多路外部设备控制多路应用程序的解决方案。如图2所示,为本发明实施例基于Windows操作系统对多路外部设备的输入的处理方法流程图,所述方法包括S201、针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,其中该操作控制信息中携帯所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息。本发明的对多路外部设备的输入的处理方法可以应用在于通过网络连接有多个终端的服务器中,其中每个终端连接对应的外部设备,也可以应用于通过本地连接有多个外部设备的PC机上。可选的,所述获取该外部设备对对应的应用程序的操作控制信息包括应用控制代理接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携帯该终端的标识信息(终端的标识信息可以包括终端的IP地址,或,终端的IP地址+终端的端口号)、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符信息对应的操作指令信息;或,应用控制代理接收与每个硬件接ロ连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息(该外部设备的属性信息包括外部设备的VID信息、PID信息和REV信息中的至少ー种,其中VID信息为供应商ID信息,PID信息为产品识别码信息,REV信息为制造商标识编码信息)、对应的应用程序的标识信息以及外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息。S202、针对每个应用程序的标识信息保存其对应的每个操作指令信息。当应用控制代理接收并解析获得了每个外部设备发送的操作控制信息后,将该操作控制信息发送给中间件,中间件根据每个操作控制信息保存每个应用程序的标识信息及其对应的每个操作指令信息。可选的,所述针对每个应用程序的标识信息保存其对应的每个操作指令信息包括中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域,当判断未为该标识信息的应用程序创建共享内存区域时,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息;或,中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。S203、根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理。
在本发明中当接收了每个操作控制信息后,可以按照设定的时间周期依次轮询每个操作控制信息,并将操作控制信息中携帯的操作指令信息发送到对应标识信息的应用程序进行处理,或者,启动了的每个标识信息的应用程序也可以主动的向中间件发送请求,获取其相应的操作指令信息。可选的,所述根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理包括所述中间件按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,所述中间件按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携帯的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理;或,所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携帯的应用程序的标识信息,查找携帯该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的操作指令信息发送给该标识信息的应用程序进行处理。S204、根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。具体的应用程序对获得的每个操作指令信息进行处理,并将最終的处理结果发送给中间件,采集编码模块采集中间件中的处理结果并发送。可选的,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括中间件接收每个标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理結果,将处理结果编码后发送给该外部设备对应的终端进行显示。上述为每个外部设备对唯一一个标识信息的应用程序进行操作时的过程,其中在本发明中每个应用程序可能会被不同的用户使用,例如某一游戏应用程序,可能多个用户都会同时使用这个应用程序,而该应用程序每响应一次用户的请求启动ー个,该被启动的应用程序都会存在唯一 的一个标识信息,标识该用户当启动的应用程序是哪ー个,当该应用程序被启动后,设备将该标识信息分配给该终端,该终端再发送操作控制信息后,设备可以识别终端的外设备操作的是哪个应用程序。但具体使用时也会出现多个外部设备针对同一标识信息的应用程序进行操作的情况,例如当两个或多个用户玩联机游戏时,两个或者多个用户是针对同一标识信息的应用程序进行的操作。在本发明中当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括中间件接收该标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与每个外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。对应于上述方法实施例,如图3所示,为本发明实施例基于Windows操作系统对多路外部设备的输入的处理系统结构示意图,所述系统包括应用控制代理模块31,用于针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,并将所述操作控制信息发送给中间件32,其中该操作控制信息中携帯所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息;中间件32,用于接收应用控制代理模块31发送的操作控制信息,针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;采集编码模块33,用于根据中间件32保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。可选的,所述应用控制代理模块31,具体用于接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携帯该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符对应的操作指令信息;或,所述应用控制代理模块31,具体用于接收与每个硬件接ロ连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信知、O可选的,所述中间件32,具体用于接收应用控制代理模块31发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域,当判断未为该标识信息的应用程序创建共享内存区域时,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息;或,所述中间件32,具体用于接收应用控制代理模块31发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息以及操作指令信息,针对姆个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。可选的,所述中间件32,进ー步用于按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步用于接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携帯的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理;或,所述中间件32,进一歩用于按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步用于接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携帯的应用程序的标识信息,查找携帯该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信 息的对应关系,将对应的该操作指令信息发送给该标识信息的应用程序进行处理。可选的,所述中间件32,进ー步用于接收每个标识信息的应用程序发送的处理结果;所述采集编码模块33,进ー步用于根据中间件32保存的应用程序的标识信息与外部设备的识别信息的对应关系,采集该标识信息的应用程序的处理結果,将处理结果编码后发送给该外部设备对应的终端进行显示。可选的,所述中间件32,还用于当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,保存应用程序的标识信息与每个外部设备的识别信息的对应关系;所述采集编码模块33,还用于根据中间件32保存的应用程序的标识信息与每个外部设备的识别信息的对应关系,采集该标识信息的应用程序的处理結果,将处理结果编码后发送给每个外部设备对应的终端进行显示。上述本发明方法或系统实施例提出了在windows操作系统的服务器中多路外部设备对不同应用程序的控制的实现方案,从而可以使单台服务器可以为多个终端提供互不干扰的外部设备控制功能,即每个終端可以独立地通过外部设备(包括鼠标、键盘、游戏杆等)通过同一台服务器对运行的应用程序进行操作和控制。并且当服务器本地连接多个外部设备时,每个外部设备也可以独立的操作相应的应用程序,而不出现乱操作的错误。本发明可以满足大容量用户群的需求。对于服务器通过终端与多个外部设备相连,或者PC本地直接与多个外部设备相连这两种情况,中间件获取操作控制信息的过程略有不同,以下结合图4和图5进行说明如图4所示,为本发明应用实例的PC与本地直接相连的多个外部设备之间的交互过程示意图,该过程包括S401/S402/S403 :与PC上的每个硬件接ロ连接的外部设备,通过硬件接ロ向应用控制代理发送操作控制信息,其中该操作控制信息中携带该外部设备的属性信息(例如外部设备的VID信息、PID信息和REV信息中的至少ー种,其中VID信息为供应商ID信息,PID信息为产品识别码信息,REV信息为制造商标识编码信息)、对应的应用程序的标识信息以及该外部设备的操作描述符信息;S404/S405/S406 :应用控制代理接收与每个硬件接ロ连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息,然后应用控制代理将解析后的操作控制信息发送给中间件。图5为本发明应用实例的服务器通过终端与多个外部设备之间的交互过程示意图,该过程包括S501/S502/S503 :与每个终端连接的外部设备在对服务器中的应用程序进行操作时,通过终端向服务器发送携帯操作控制信息的IP数据包。S504/S505/S506 :应用控制代理接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携带该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,其中在本方案中终端的标识信息可以为终端的IP地址信息、或终端的IP地址信息+终端的端ロ号信息。应用控制代理解析该操作描述符信息,获取该操作描述符信息对应的操作指令信息;应用控制代理针对每个外部设备,将解析后的操作控制信息发送给中间件,其中该操作控制信息中携帯所述终端的标识信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息。中间件接收应用控制代理发送的操作控制信息,针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;采集编码模块根据中间件保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。进ー步地,当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,例如当两个或者多个终端上的外部设备同时针对某一应用程序进行操作时,例如两个終端操作联机游戏程序时,每个外部设备可以将携带该应用程序的标识信息的操作控制信息发送给应用控制代理,由应用控制代理解析并发送给中间件进行处理。另外,在本发明中也可以采用以下方案实现其中一个终端首先接入服务器,井向服务器发送创建用户组的请求信息,该请求信息中携帯该终端的识别信息,请求的应用程序的标识信息,服务器接收到该请求信息后,为该终端创建用户组,例如为用户组1,并启动相应的应用程序,采用相应的标识信息标识启动的该应用程序分配给了该用户组I。之后服务器又接收到另一终端请求加入该终端的联机游戏程序的请求,此时应用控制代理接收到该另ー終端上的外部设备的请求后,获取该终端的终端的标识信息,井根据该终端请求加入的终端的标识信息,将该另一終端也加入到该用户组I中,即该用户组I与两个终端上的标识信息与启动的该标识信息的应用程序相对应。中间件接收该标识信息的应用程序发送的处理结果,根据保存的用户组I中的应用程序的标识信息与每个外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。当应用程序从中间件中获取每个操作指令信息时,或者中间件将每个操作指令信息发送给应用程序时,中间件针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示,在本方案中,应用程序调用不同的中间件,在获取外部设备操作指令信息的方式有所不同,具体应用结合图4进行如下描述如图6所示,为本发明应用实例应用程序从中间件中获取每个操作指令信息示意图。当采用第一中间件时,第一中间件接收到应用控制代理发送的操作控制信息后,根据该操作控制信息中携帯的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域(如图6中,第一应用程序对应全局共享内存区域I,第二应用程序对应全局共享内存区域2,……,第N应用程序对应全局共享内存区域N),当判断未为该标识信息的应用程序创建共享内存区域时,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息。第一中间件进ー步按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步第一中间件接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携帯的应用程序的标识信息,在创建的共享内存区 域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理。如图7所示,为本发明应用实例中间件将每个操作指令信息发送给应用程序示意图。当采用第二中间件时,第二中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携帯的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系(如图7中,第一应用程序对应第一对应关系,第二应用程序对应第二对应关系,……,第N应用程序对应第N对应关系)。第二中间件进ー步按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,进ー步用于接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携帯的应用程序的标识信息,查找携帯该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的操作指令信息发送给该标识信息的应用程序进行处理。当服务器通过网络连接多个终端时,或者服务器在本地连接多个外部设备时,可以按照上述方案对每个连接的外部设备的操作描述符进行操作,以避免乱操作的问题。本发明提出了在windows操作系统的服务器中多路外部设备对不同应用程序的控制的实现方案,单台服务器可以为多个终端提供互不干扰的外部设备控制功能,即每个終端可以独立地通过外部设备(包括鼠标、键盘、游戏杆等)对运行的应用程序进行操作和控制。并且当服务器本地连接多个外部设备时,每个外部设备也可以独立的操作相应的应用程序,而不出现乱操作的错误。本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。本发明实施例中所描述的各种说明性的逻辑块,或単元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、⑶-ROM或本领域中其它任意形式的存储 媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户終端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以ー个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从ー个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从ー个网站站点、服务器或其它远程资源通过ー个同轴电缆、光纤电脑、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进ー步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于Windows操作系统对多路外部设备的输入的处理方法,其特征在于,所述方法包括 针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,其中该操作控制信息中携带所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息; 针对每个应用程序的标识信息保存其对应的每个操作指令信息; 根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理; 根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送 给该外部设备对应的终端进行显示。
2.如权利要求I所述的方法,其特征在于,所述获取该外部设备对对应的应用程序的操作控制信息包括 应用控制代理接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携带该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符对应的操作指令信息; 或, 应用控制代理接收与每个硬件接口连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息。
3.如权利要求I或2所述的方法,其特征在于,所述针对每个应用程序的标识信息保存其对应的每个操作指令信息包括 中间件接收应用控制代理发送的操作控制信息, 根据该操作控制信息中携带的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域, 当判断未为该标识信息的应用程序创建共享内存区域时,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息; 或, 中间件接收应用控制代理发送的操作控制信息,根据该操作控制信息中携带的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。
4.如权利要求3所述的方法,其特征在于,所述根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理包括 所述中间件按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或, 所述中间件按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理; 或, 所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携带的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理; 或, 所述中间件接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携带的应用程序的标识信息,查找携带该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的操作指令信息发送给该标识信息的应用程序进行处理。
5.如权利要求I所述的方法,其特征在于,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括 中间件接收每个标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给该外部设备对应的终端进行显示。
6.如权利要求I或2所述的方法,其特征在于,当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,所述根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示包括 中间件接收该标识信息的应用程序发送的处理结果,根据保存的应用程序的标识信息与每个外部设备的识别信息的对应关系,通过采集编码模块采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。
7.一种基于Windows操作系统对多路外部设备的输入的处理系统,其特征在于,所述系统包括 应用控制代理模块,用于针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,并将所述操作控制信息发送给中间件,其中该操作控制信息中携带所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息; 中间件,用于接收应用控制代理模块发送的操作控制信息,针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理; 采集编码模块,用于根据中间件保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。
8.如权利要求7所述的系统,其特征在于,所述应用控制代理模块,具体用于接收与终端连接的外部设备发送的IP数据包,对该IP数据包进行解析,获取该IP数据包中的操作控制信息,其中该操作控制信息中携带该终端的标识信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,解析该操作描述符信息获取该操作描述符对应的操作指令信息; 或, 所述应用控制代理模块,具体用于接收与每个硬件接口连接的外部设备发送的操作控制信息,其中该操作控制信息中携带该外部设备的属性信息、对应的应用程序的标识信息以及该外部设备的操作描述符信息,对该操作描述符信息进行解析获取该操作描述符信息对应的操作指令信息。
9.如权利要求7或8所述的系统,其特征在于,所述中间件,具体用于接收应用控制代理模块发送的操作控制信息,根据该操作控制信息中携带的应用程序的标识信息,判断是否为该标识信息的应用程序创建共享内存区域,当判断未为该标识信息的应用程序创建共享内存区域时,为该标识信息的应用程序创建共享内存区域,并针对该标识信息的应用程序在该共享内存区域中保存该操作指令信息;当判断已经为该标识信息的应用程序创建共享内存区域时,在该标识信息的应用程序对应的共享内存区域中保存该操作指令信息; 或, 所述中间件,具体用于接收应用控制代理模块发送的操作控制信息,根据该操作控制信息中携带的应用程序的标识信息以及操作指令信息,针对每个操作控制信息保存应用程序的标识信息与操作指令信息的对应关系。
10.如权利要求9所述的系统,其特征在于, 所述中间件,进一步用于按照设定的时间周期轮询每个共享内存区域,根据每个共享内存区域对应的应用程序的标识信息,按顺序将保存的操作指令信息发送给对应标识信息的应用程序进行处理;或,进一步用于接收每个标识信息的应用程序发送的操作指令请求信息,根据该操作指令请求信息中携带的应用程序的标识信息,在创建的共享内存区域中查找该标识信息的应用程序对应的共享内存区域,按顺序将查找到的共享内存区域中的操作指令信息发送给该标识信息的应用程序进行处理; 或, 所述中间件,进一步用于按照设定的时间周期轮询每个操作控制信息,根据每个操作控制信息对应的应用程序的标识信息与操作指令信息的对应关系,将每个操作指令信息发送给对应标识信息的应用程序进行处理;或,进一步用于接收每个标识信息的应用程序发送的操作指令请求信息,依次根据该操作指令请求信息中携带的应用程序的标识信息,查找携带该标识信息的应用程序的操作控制信息,针对该操作控制信息保存的应用程序的标识信息与操作指令信息的对应关系,将对应的该操作指令信息发送给该标识信息的应用程序进行处理。
11.如权利要求7所述的系统,其特征在于, 所述中间件,进一步用于接收每个标识信息的应用程序发送的处理结果; 所述采集编码模块,进一步用于根据中间件保存的应用程序的标识信息与外部设备的识别信息的对应关系,采集该标识信息的应用程序的处理结果,将处理结果编码后发送给该外部设备对应的终端进行显示。
12.如权利要求7或8所述的系统,其特征在于, 所述中间件,还用于当至少两个外部设备针对同一标识信息的应用程序发送操作控制信息时,保存应用程序的标识信息与每个外部设备的识别信息的对应关系;所述采集编码模块,还用于根据中间件保存的应用程序的标识信息与每个外部设备的识别信息的对应关系, 采集该标识信息的应用程序的处理结果,将处理结果编码后发送给每个外部设备对应的终端进行显示。
全文摘要
本发明提供基于Windows操作系统对多路外部设备的输入的处理方法及系统,所述方法包括针对每个外部设备,获取该外部设备对对应的应用程序的操作控制信息,其中该操作控制信息中携带所述外部设备的识别信息、对应的应用程序的标识信息以及所述外部设备的操作指令信息;针对每个应用程序的标识信息保存其对应的每个操作指令信息;根据时间周期触发条件或应用程序请求触发条件,将每个操作指令信息发送给对应标识信息的应用程序进行处理;根据保存的应用程序的标识信息与外部设备的识别信息的对应关系,将处理结果发送给该外部设备对应的终端进行显示。本发明实施例提出了一种支持多路外部设备控制多路应用程序的解决方案。
文档编号G06F13/10GK102662879SQ20121006923
公开日2012年9月12日 申请日期2012年3月15日 优先权日2012年3月15日
发明者林靖然 申请人:北京视博云科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1