数据处理方法、装置和电子设备与流程

文档序号:33016828发布日期:2023-01-20 16:30阅读:26来源:国知局
数据处理方法、装置和电子设备与流程

1.本发明涉及数据处理技术领域,尤其是涉及一种数据处理方法、装置和电子设备。


背景技术:

2.dcc(digital content creation,数字内容创作)软件是三维动画制作软件的统称,dcc软件通常包括3dsmax软件、maya软件、mobu软件等。在一些应用场景中,需要dcc软件处理大量的数据,例如,对大量数据进行格式转换、内容转换、数据读入等。相关技术中,在大多情况下,需要人工操作dcc软件对这些数据逐一处理,操作繁琐且效率较低;还可以编写插件,将插件安装至dcc软件中,通过插件读取外部软件中的数据并进行处理,该方式增加了用户的学习使用成本,需要对插件进行额外的配置,操作依然比较复杂,同时还会增加dcc软件的复杂性,影响软件的使用性能。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种数据处理方法、装置和电子设备,以使dcc软件在处理大量的数据时,提高数据处理效率;同时,无需额外安装插件即可读取处理数据,操作简单方便,保障软件的使用性能。
4.第一方面,本发明实施例提供了一种数据处理方法,接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;确认软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
5.第二方面,本发明实施例提供了一种数据处理装置,该装置包括:第一信息确定模块,用于接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;第二信息确定模块,用于确认软件版本信息指示的目标软件启动;通信方式确定模块,用于基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;数据处理模块,用于通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
6.第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述数据处理方法。
7.第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述数据处理方法。
8.本发明实施例带来了以下有益效果:
9.上述数据处理方法、装置和电子设备,接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;确认软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。该方式通过外部软件与目标软件交互实现大量数据的处理,数据处理效率较高;同时,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件适用较为合理的通信方式进行通信,无需额外安装插件,降低了软件的复杂性,保障了软件的使用性能。
10.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
11.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
12.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本发明实施例提供的一种数据处理方法的流程图;
14.图2为本发明实施例提供的一种dcc软件采用数据批处理方式处理数据的示意图;
15.图3为本发明实施例提供的一种dcc软件采用数据写入方式处理数据的示意图;
16.图4为本发明实施例提供的一种数据处理装置的结构示意图;
17.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.下面首先介绍本技术实施例中涉及的术语:
20.1)3d studio max
21.简称3dsmax,是一款基于pc系统的三维动画渲染和制作软件,原生3dsmax.max文件格式是完整的场景格式,其中包含该文件中的所有组件和对场景内容的引用。
22.2)maya
23.maya是一款三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等。在maya软件中,原生文件格式为ma或者mb格式。
24.3)mobu
25.全称为motionbuilder,业界最为重要的3d角色动画软件之一,它集成了众多优秀的工具,为制作高质量的动画作品提供了保证。fbx是autodesk motionbuilder固有的文件格式。
26.3)dcc软件
27.三维动画制作软件的统称,包括3dsmax软件、maya软件、mobu软件等。
28.4)批量处理
29.数据的格式和/或内容进行批量的转换操作,例如:将dcc软件的资源格式,比如3dsmax、maya软件格式,转换为fbx格式。
30.5)autodesk fbx
31.autodesk fbx是一款用于跨平台的免费三维创作与交换格式的软件,通过fbx用户能访问大多数三维供应商的三维文件。fbx文件格式支持所有主要的三维数据元素以及二维、音频和视频媒体元素。
32.6)dcc互通技术
33.让外部软件可以与dcc软件进行交互的技术,通过外部软件发出的指令,对dcc软件进行数据处理任务,在这里,外部软件可以理解为除dcc软件以外的所有客户端软件集合。
34.当前在三维模型设计领域,三维软件越来越多,三维软件之间的文件转换格式或内容的需求也越来越旺盛,尤其是将dcc软件的资源格式转换为fbx格式,例如3dsmax、maya软件格式转为fbx格式。在一些应用场景中,外部软件通过发出的数据处理指令,与dcc软件建立通信后,可以控制dcc软件执行格式转换、内容转换、数据读入等数据处理任务。
35.相关技术中,外部软件与dcc通信通常都需要依靠额外插件才能实现。一般地,需要手动打开dcc软件并配置使用对应脚本语言(如python、mel、maxscript、c++等编程语言)编写的相关插件,然后在保持dcc软件启动的过程中,通过插件读取外部软件保存的数据信息进行后续指令操作,这种方式下,大量插件的安装容易导致功能与界面上的复杂,增加dcc软件的复杂性,在安装插件进行交互过程中也往往需要更多配置,增加了用户的学习使用成本,影响数据处理效率。
36.另外,相关的dcc互通技术中,在对dcc软件进行数据格式、内容转换和数据写入等任务时,基本上是通过人工处理的方式来实现,很少能够控制dcc软件自动化批量的完成数据处理,尤其是数据处理的任务量较多时,操作繁琐并且效率较低。
37.基于此,本发明实施例提供的一种数据处理方法、装置以及电子设备,通过采用外部软件与目标软件直接进行通信的方式,不需要在dcc软件中安装插件且完全自动化的处理数据,提高数据处理效率。该技术可以应用在数据处理技术领域,尤其可以应用于三维动画制作、模型渲染,或者其他需要处理大量数据的场景中。
38.为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据处理方法进行详细介绍,如图1所示,该方法包括如下步骤:
39.步骤s102、接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,该数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;
40.需要说明的是,本发明的执行主体可以为安装有外部软件的系统设备,还可以是安装有外部软件的终端或者服务器,具体此处不做限定。本发明实施例以外部软件的终端(简称外部终端)为执行主体为例进行说明。
41.上述数据处理指令基于用户的操作生成,在数据处理指令中,包含了待处理数据、数据处理方式以及软件版本信息的信息。外部终端接收指令后,从数据处理指令中确定待处理的目标数据、数据处理方式以及软件版本信息。在这里,待处理的目标数据是具有指定数据格式和指定内容的文件或文件集群;数据处理方式包括数据批处理操作和/或数据写入,也就是说,外部终端不仅可以接收数据批处理操作或数据写入其中之一的指令,也可以同时接收包括数据批处理操作和数据写入的指令。例如:对目标数据的格式和/或内容进行批量写入操作、单纯的数据写入等;另外,数据处理的过程不仅与用于处理目标数据的软件的软件类型有关,还需要涉及到具体的软件版本,因此,还需要从数据处理指令中获取用于处理目标数据的目标软件的软件类型以及用户选择的软件版本,以确定目标软件的软件版本信息。
42.以dcc软件的文件格式批处理转换为fbx格式的数据处理指令为例,该方式下数据处理方式为数据批处理操作,上述待处理的目标数据可以是具有mobu、3dsmax、maya其中一种或多种数据格式的文件集群,相应地,目标软件可以是dcc软件中mobu软件、3dsmax软件、maya软件的一个或多个类型软件,目标软件的软件版本信息可以是3dmax软件系列的3dmax2018版本、maya软件系列的maya2021版本等。
43.本步骤中,根据数据处理指令确定了待处理的目标数据、数据处理方式以及软件版本信息,为实现外部软件与dcc软件通信提供了目标数据、数据处理方式及软件信息。其中,数据批处理的数据处理方式,使得目标数据可以自动化批量的去处理数据,大大节省了时间和人工成本。
44.步骤s104、确认软件版本信息指示的目标软件启动;
45.根据软件版本信息确定软件版本信息指示的目标软件,根据目标软件的软件状态,确定目标软件是否启动;如果目标软件未启动,需要启动目标软件,示例地,以将3dsmax软件的文件格式批处理转换为fbx格式为例,需要确保根据数据处理指令获取的软件版本信息中指示的对应版本的3dsmax软件开启。
46.步骤s106、基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;
47.根据数据处理方式和目标软件的软件类型,终端确定与目标软件直接进行通信的通信方式,在这里,针对不同的数据处理方式和不同的目标软件的软件类型设计了不同的通信方式。
48.示例地,以将dcc软件的文件格式批处理转换为fbx格式为例,该方式下数据处理方式为数据批处理操作,如果目标软件的软件类型为3dsmax,终端将目标通信方式设置为套接字通信方式;如果目标软件的软件类型为maya,终端利用maya软件的服务器与maya软件进行通信。同样的,当利用外部终端对dcc软件的文件进行数据写入处理时,如果目标软件的软件类型为3dsmax,确定目标通信方式为句柄通信方式;如果目标软件的软件类型为maya,确定目标通信方式为套接字通信方式。
49.本步骤在中,根据数据处理方式和目标软件的软件类型,可以确定与目标软件进
行通信的目标通信方式。需要说明的是,该通信方式无需额外安装插件,避免了影响软件的使用性能,同时也降低了通信操作的复杂性。
50.步骤s108、通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
51.也就是说,确定了通信方式后,将数据处理指令按照目标通信方式发送至相应的目标软件,以控制目标软件对目标数据进行数据批处理或者数据写入操作,得到处理完成的目标数据,以前述将3dsmax软件的文件格式批处理转换为fbx格式为例,该方式下外部终端与3dsmax软件通信方式确定为套接字通信方式,通过套接字通信方式,将数据处理指令发送至对应版本的3dsmax软件,控制该软件对目标文件数据的格式进行批量的转换操作,得到转换结果。
52.本步骤中,通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。该方式下,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件直接进行通信,无需额外安装插件,避免影响软件的使用性能,同时也降低了通信操作的复杂性,另外,采用数据批处理操作的数据处理方式,高效准确的对软件数据进行处理,节省了人工和时间成本,提高了数据处理效率。
53.上述数据处理方法,接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;确认软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。该方式通过外部软件与目标软件交互实现大量数据的处理,数据处理效率较高;同时,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件适用较为合理的通信方式进行通信,无需额外安装插件,降低了软件的复杂性,保障了软件的使用性能。
54.在外部终端接收数据处理指令之前,需要获取目标软件的相关信息。下述以目标软件为dcc软件为例,提供获取目标软件的软件类型和软件版本的具体实现方式。
55.具体地,获取待处理的目标数据,基于目标数据的数据类型,确定处理目标数据的目标软件的软件类型;检测指定设备中的注册表和软件安装路径,确定目标软件的至少一个可用版本,显示至少一个可用版本的版本标识;响应于版本标识中第一版本标识的选中操作,确定目标软件的软件版本。
56.上述待处理的目标数据的数据类型可以是mobu、3dsmax、maya等其中一种文件格式类型,也可以是多种文件格式杂交的混合类型;相应地,处理目标数据的目标软件的软件类型包括:mobu、3dsmax、maya等类型。上述指定设备指的是安装dcc软件的设备。上述版本标识为用来识别软件版本的唯一标识。
57.获取待处理的目标数据,通过待处理的目标数据的数据类型确定对应类型的dcc软件。进一步地,通过检测设备安装dcc软件时生成的注册表获取软件安装路径,首先检测安装路径中该类型dcc软件是否正确安装,若正确安装后,该类型dcc软件应至少有一个可用版本,将获取到的可用dcc软件及版本标识列表罗列并显示,供用户在终端上进行选择。
58.进一步地,响应于用户对版本标识的选中操作,确定了目标软件的软件版本。例如:3dmax2018、3dmax2012等。
59.上述方式,通过待处理的目标数据的数据类型,确定了目标软件的软件类型,用户可以通过注册表获取软件安装路径,并选择软件版本。
60.终端接收数据处理指令后,首先确定与指令相关的软件的当前工作状态,以根据各个软件的当前工作状态确定后续的数据处理工作。以接收到将dcc软件的文件格式批处理转换为fbx格式的数据处理指令为例,外部终端在获取该数据处理指令后,确定与指令相关的各个dcc软件的当前工作状态,以判断各个软件是否存在未处理的数据。具体地,根据预先记录的各个软件对历史数据的处理进度,确定各个软件的当前工作状态;其中,当前工作状态指示:是否存在未处理的数据;显示各个软件的当前工作状态。
61.实际实现时,终端可以搜索本地内部记录,根据内部记录中预先记录的各个dcc软件对历史数据的处理进度,判断各个软件是否存在未处理的数据。例如:终端内部记录指示:需要格式转换的3dsmax软件文件有5个,已经转换完成了3个,存在未处理的数据文件有2个;需要格式转换的maya软件文件有3个,已经转换完成了1个,存在未处理的数据文件有2个。
62.确认各个软件的当前工作状态后,进一步地,基于目标软件的软件状态,确定目标软件是否启动;如果目标软件未启动,启动目标软件。
63.可以理解的,当数据处理任务继续执行时,说明目标软件正在启动,当任务没有继续执行时,说明目标软件未启动,需要用户启动目标软件。
64.需要说明的是,在启动目标软件执行数据处理任务过程中,可以设置为后台启动的模式,保持软件启动过程对用户隐藏,以减少显示界面的复杂程度。
65.具体地,如果目标软件的软件类型为预设的第一类型,且数据处理方式为数据批处理操作,在目标软件启动过程中,通过预设的应用接口搜索目标软件启动过程中待显示子窗口的窗口句柄;通过窗口句柄,隐藏待显示子窗口。
66.上述预设的第一类型可以是3dsmax软件类型;上述预设的应用接口可以为windows api(windows application programming interface,windows应用程序编程接口),该应用接口可以基于windows操作系统去执行应用程序的命令;上述窗口句柄是系统分配给每个窗口的唯一标识,根据窗口句柄可以找到该窗口。
67.也就是说,当终端控制3dsmax软件的文件格式批处理转换为fbx格式时,可以在指定版本的3dsmax软件启动过程中,通过windows api去搜索该3dsmax软件启动过程中待显示子窗口的窗口句柄,并通过该窗口句柄,隐藏待显示子窗口。
68.需要说明的是,在3dsmax软件后台启动到任务执行完成的过程中,都可以采用上述方式,通过句柄的搜索,对3dsmax启动时候的子窗口进行逐一隐藏。让用户在看不到3dsmax客户端启动的情况下去执行3dsmax相关操作。尤其对于批量处理任务,降低了显示界面的复杂度,当需要对任务执行过程进行展示时,只需要简单点击,即可一键在后台唤醒自己指定版本的dcc软件进程,提升用户的体验。
69.在相关的dcc互通技术中,外部终端与每种类型的dcc软件的通讯技术具有一定的局限性。
70.1)3dsmax方面:
71.ole(object linking and embedding,对象连接与嵌入)通信技术:这种方式需要将maxscript脚本固定放在文件夹下,3dsmax软件重新安装会失效,而且无法处理复杂的命令、创建窗口的命令等,只能通过具体的脚本来实现,当电脑上打开了多个3dsmax软件时,还无法解决选择某个指定的3dsmax执行命令的问题。
72.窗口句柄通信技术:通过窗口句柄的方式来通信,通信方式可以基于windows消息wm_copydata来实现,只适用于简单命令的外部调用,复杂指令只能通过执行3dsmax软件中的maxscript脚本来实现,但无法获取到执行的结果。
73.2)maya方面:
74.batch工具:batch,中文意为“批”。如果使用maya自带的batch.exe来进行批处理操作的方式只能执行指定的mel脚本,并且不具有持续交互通信的功能,运行期间不能交互,执行一个命令后就会自行关闭。
75.基于此,本发明针对不同的数据处理方式和不同的目标软件的软件类型设计了不同的通信方式,并配合相应通信方式下的数据处理操作进行数据处理,以弥补上述通信技术在数据处理方面的缺陷。
76.首先,下述实施例提供了数据处理方式为数据批处理时,终端控制指定版本的dcc软件进行数据处理技术的实施过程。
77.具体地,首先,根据不同的目标软件类型,确定相应地通信方式:
78.如果目标软件的软件类型为预设的第一类型,确定目标通信方式为套接字通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为通过目标软件的服务器进行通信的方式。
79.上述预设的第一类型可以是3dsmax软件类型,预设的第二类型可以是maya软件类型;上述套接字(socket)通信方式,实质是两个网络各自通信连接中的端点,可以实现两个应用程序之间的数据传输,同时可以弥补ole、窗口句柄两种通信方式无法获取到处理结果的弊端。
80.也就是说,当与终端通信的目标软件的软件类型为3dsmax软件类型时,通信方式为套接字通信方式,当与终端通信的目标软件的软件类型为maya软件类型时,通过对应版本的maya软件的服务器进行通信。
81.接着,基于不同的通信方式,提供对应的数据处理技术:
82.一个具体方式中,当通信方式为套接字通信方式时,对应的数据处理技术为:通过预设的第一套接字,将数据处理指令发送至目标软件,以控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
83.上述数据批处理包括对文件格式批处理和内容的批量处理,也可以仅是对文件格式或文件内容之一的批量处理操作。
84.以3dsmax软件的文件格式批处理转换为fbx格式为例,也就是说,通过预先设置的第一套接字,直接将数据处理指令发送至对应版本的3dsmax软件的方式,可以通过3dsmax软件中自带的maxscript脚本,控制软件对目标数据的格式和/或内容进行批量的转换操作,转换成功后,得到批处理转换结果,同时,将转换结果自动返回至终端,终端接收目标软件返回的转换结果即可。
85.需要说明的是,在进行批量的转换操作过程中,还需要终端判断终端设备中是否有已经转换完成的目标数据,防止重复转换增加转换负担。
86.具体地,确定是否查找到满足指定条件的目标数据;其中,指定条件包括指定格式或指定内容;如果查找不到满足指定条件的目标数据,确定目标数据需要进行转换操作,执行通过预设的第一套接字,将数据处理指令发送至目标软件的步骤;如果查找到满足指定条件的目标数据,确定目标数据不需要进行转换操作,将查找到的满足指定条件的目标数据作为转换结果。
87.以3dsmax软件的文件批处理转换为fbx格式为例,也就是说,在进行批量的转换操作过程中,会预先通过在终端设备中查找是否有fbx格式的目标数据,来判断设备中是否有已经转换完成的目标数据以免重复转换,如果查找不到fbx格式的目标数据,说明该目标数据没有被批处理转换过,需要对目标数据进行转换操作,即,执行数据处理指令发送至3dsmax软件中进行数据批处理操作,如果查找到fbx格式的目标数据,说明这该批次目标数据已经批处理完成了,不需要再次转换了,直接将查到的fbx格式的目标数据作为转换结果即可。
88.值得注意的是,当数据处理指令发送至对应版本的3dsmax软件后,还可以实时获取目标软件的软件状态,具体地,通过第一套接字实时或定时地获取目标软件的软件状态,以及目标软件针对目标数据的处理进度;如果目标软件的软件状态为崩溃状态,显示目标软件的询问信息;该询问信息用于:询问是否重启目标软件。
89.也就是说,通过第一套接字与3dsmax软件通信的技术,可以实时或定时地获取目标软件的软件状态,检查批量处理过程中3dsmax的状态和处理进度,以保证对应文件可以正常转换成功,如果目标软件的软件状态为崩溃状态,也可以通过弹窗等方式显示目标软件的询问信息,询问用户是否需要重启3dsmax继续转换。
90.上述通过与外部终端建立套接字通信的方式,配合预设的第一类型的dcc软件的脚本,控制该类型的dcc软件进行数据批处理操作,在转换操作中,终端还可以通过预设的套接字实时或定时地获取软件的软件状态和目标数据的处理进度,保证了转换过程的高效性和准确性,同时转换完成后,还能返回转换结果以供外部终端接收,尤其是3dsmax软件方面,采用在maxscript脚本与外部软件建立socket通信的方式,弥补ole、窗口句柄两种通信方式无法获取到处理结果的弊端,提高了用户的体验。
91.另一个具体方式中,当通信方式为通过目标软件的服务器进行通信的方式时,对应的数据处理技术为:通过目标软件的安装路径,获取目标软件的解释器程序;通过解释器程序运行预设的脚本文件,以通过脚本文件注册第二套接字;其中,该第二套接字用于:占用空闲端口运行目标软件的第一服务器;将数据处理指令发送至第一服务器,以通过第一服务器控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
92.上述解释器程序是将一种语言的程序翻译成与之等价的供程序运行的另一种语言的程序,可以利用解释器程序增加或转换目标软件的脚本语言种类,以使目标软件运行相应的脚本,执行脚本命令。上述第一服务器为上述目标通信方式中用于通信的服务器,可以是dcc软件自带的服务器。
93.以maya软件的文件批处理转换为fbx格式的数据处理技术为例,通过检测本地安
装maya软件时候生成的注册表获取该软件安装路径,通过maya软件安装路径得到相应版本的maya软件安装目录下的mayapy.exe文件,该文件是python解释器程序,可以通过它运行含有maya api的python脚本。在这里,采用python解释器程序将脚本语言转换为python脚本,该类型脚本极易将繁琐无序的凌乱数据,转化为可用的结构化数据,这种特性非常有助于大数据的处理,同时,还具有持续交互通信的功能。
94.进一步地,外部终端通过执行python脚本,在本地注册一个socket(即上述第二套接字),通过socket占用一个未被使用的端口,运行于第一服务器。在这里,由于mayapy.exe(即python解释器程序)可以直接调用maya封装好的功能,因此,在执行maya数据批量处理操作时不需要在后台启动一个maya进程,只需要外部终端通过进程的方式,使用对应版本的mayapy.exe启动python脚本即可生成一个用于批处理的无窗口后台服务器,作为用于与目标软件通信的第一服务器。将数据处理指令发送至第一服务器,通过该服务器控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,并向外部终端返回转换结果,外部终端接收目标软件返回的转换结果后,即完成了一次数据批处理操作。
95.同样的,外部终端也可以实时获取maya软件的工作状态,具体地,通过第一服务器监听目标软件的工作状态,返回监听到的目标软件的状态信息;接收第一服务器返回的目标软件的状态信息。
96.也就是说,第一服务器还实现了监听目标软件的工作状态的功能,并向外部终端返回监听到的目标软件的状态信息,例如实时监听运行中的转换任务是否执行完成,在执行完成后将完成信息返回给外部终端,实现一次批量处理的通信交互。
97.上述采用dcc软件的服务器进行通信的方式,通过脚本解释器调用与套接字通信技术的结合来实现一个能够实时通信交互的批量处理功能,尤其是针对maya软件的数据处理技术,开发了一个基于python的脚本,通过直接启动python语言解释器来运行python脚本,使其具有持续交互通信的功能,完美的解决了batch工具不具有持续交互通信的缺点,提高批量处理任务的速度的同时,还提升了用户体验。
98.为了对本技术中外部终端控制dcc软件完成数据批处理操作的过程有更系统的认识,下述分别提供3dsmax软件和maya软件通过外部终端将文件批处理转换为fbx格式文件的具体实施例。
99.如图2所示,在3dsmax软件的数据处理流程中,以数据处理指令的形式将转换任务发送给外部终端,外部终端接收到数据批处理指令后,查询内部记录判断当前是否确实有还未进行转换的任务,并用windows api去隐藏3dsmax软件的进程,然后用socket去与3dsmax建立通信,执行数据批处理操作,并检查批量处理过程中3dsmax的状态,以保证对应文件可以正常转换成功,3dsmax软件收到批处理转换命令后,通过执行3dsmax软件中自带的maxscript脚本,控制软件对目标数据的格式和/或内容进行批量的转换操作,转换成功后,自动将结果返回给外部终端件。
100.具体地,在执行数据批量的转换操作中,会预先通过在终端设备中查找是否有fbx格式的目标数据,来判断设备中是否有已经转换完成的该批次目标数据以免重复转换,如果确认需要对该批次数据进行转换,判断3dsmax的状态是否为软件打开后第一次接收到转换任务,及电脑上是否安装了3dsmax,确认软件安装并打开后,通过预设的socket,将数据批处理操作指令发送至对应版本的3dsmax软件,控制3dsmax软件对目标数据的格式和/或
内容进行批量的转换操作,得到转换结果,并自动向终端返回转换成功的信号及转换结果,同时,会综合处理任务的接收次数以及3dsmax的实时状态,及时给用户反馈,避免了ole、窗口句柄两种通信方式无法获取到处理结果的弊端,提高了用户的体验。
101.如图2所示,在maya软件的数据处理流程中,需要实现下述1)-5)步骤:
102.1)以数据处理指令的形式将转换任务发送给外部终端,
103.2)获取mayapy解释器路径,并安装mayapy解释器。
104.外部终端通过检测本地安装maya软件时候生成的注册表获取maya软件安装路径,将获取到的可用不同版本的maya软件列表罗列,供用户进行选择对应的版本软件。用户在选择想要运行批量处理的maya软件版本后,通过dcc安装路径获取mayapy解释器路径并安装mayapy.exe(即mayapy解释器)。
105.3)生成并启动后台服务器(即,第一服务器)。
106.由于mayapy.exe可以直接调用maya封装好的功能,故在执行maya批量处理任务时不需要在后台启动一个maya进程,只需要外部终端通过进程的方式,使用对应版本的mayapy.exe启动脚本即可生成一个用于批处理的无窗口后台服务器,启动该服务器,
107.4)运行服务器。
108.外部终端通过执行python脚本,在本地注册一个socket,并占用一个未被使用的端口,运行在上述后台服务器中。
109.外部终端再单独使用一个线程对后台服务器进行监听与命令转发。需要注意的是,由于maya api必须在主线程才能正常执行,故需要将服务器作为线程,监听外部终端发送的命令,在主线程中维护一个循环来等待服务器线程的任务指示。此外,后台服务器实现了监听任务的功能,会实时监听运行中的转换任务是否执行完成,在执行完成后自动将完成信息返回给外部软件,实现一次批量处理的通信交互。
110.5)将数据处理指令发送至后台服务器,以通过该服务器控制maya软件执行mel或python脚本,以对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果。
111.该方式下,通过直接启动maya自带的python语言解释器来运行python脚本,脚本运行会长期维护一个用于处理maya业务的主线程来保持后台能够持续执行任务,通过设置一个子线程来维护一个socket server与外界保持通信,通过脚本解释器调用maya封装的api与socket通信技术的结合来实现一个能够实时通信交互的批量处理功能,该脚本在一次启动后就能持续运行,在没有任务时保持待机,等待下次任务发送,完美的解决了完美的解决了batch工具不具有持续交互通信的缺点,提高批量处理任务的速度的同时,还提升了用户体验。
112.下述实施例提供了数据处理方式为数据写入时,终端控制指定版本的dcc软件进行数据处理技术的实施过程。
113.具体地,首先,根据不同的目标软件类型,确定相应地通信方式:
114.当数据处理方式包括数据写入时;如果目标软件的软件类型为预设的第一类型,确定目标通信方式为句柄通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为套接字通信方式。
115.在这里,由于控制dcc软件数据写入的数据处理方式属于较简单命令的外部调用,
因此,当数据处理方式为数据写入,与终端通信的目标软件的软件类型为3dsmax软件类型时,通信方式为句柄通信方式;而当与终端通信的目标软件的软件类型为maya软件类型时,采用套接字通信的通信方式进行通信。
116.接着,基于不同的通信方式,提供对应的数据处理技术:
117.一个具体方式中,当通信方式为句柄通信方式时,对应的数据处理技术为:获取目标软件的软件进程,通过软件进程获取目标软件的监听器窗口句柄;通过监听器窗口句柄获取目标软件的监听器窗口;通过监听器窗口将数据处理指令发送至目标软件的指定脚本,以通过指定脚本控制目标数据写入目标软件中。
118.由于数据写入操作与数据批处理操作相比,没有太多的信息需要传递,且需要较为快速的完成数据写入的操作,因此只需找到对应的目标软件的监听器,并发送执行脚本的指令即可。
119.以3dsmax软件为例,先获取外部终端上打开的所有3dsmax进程,并根据这些进程找到各自的maxscript侦听器窗口的句柄,通过监听器窗口句柄获取3dsmax软件的监听器窗口,之后,通过监听器窗口将数据处理指令发送至3dsmax软件的maxscript脚本,例如通过sendmessage方法将命令发送到句柄所在的窗口中,待数据写入成功后,向外部终端返回结果,
120.上述方式中,考虑到并不需要长期维护3dsmax的状态,且需要有较快的速度,因此,选择了全新的句柄通讯手段。直接将需要运行的脚本信息发送给了对应的maxscript监听器窗口,执行对应的脚本以实现数据写入的需求,该技术为项目后续的许多功能开发开拓了一种全新的思路。
121.另一个具体方式中,当通信方式为套接字通信方式时,对应的数据处理技术为:检测目标软件对应的进程占用的目标端口;通过预设的第三套接字,向目标端口发送第一语言编写的数据写入命令;如果目标端口接收第一语言编写的数据写入命令,且目标软件的进程在目标端口接收到数据写入指令,执行将目标数据写入目标软件。
122.上述目标软件对应的进程可以理解为目标软件程序中关于数据处理的一次运行活动,进程可以通过占用的端口与其他进程或软件进行通信,每个进程有唯一的pid(process identifier,进程控制符)编号;在这里,以目标软件为maya软件为例,一个进程对应一个maya软件版本。上述第一语言可以为python脚本语言。
123.外部终端遍历系统进程,找到maya相关的进程供用户选择,并保留进程pid与进程窗口名称(maya需要注意过滤掉无用的output窗口)。用户选择需要通信的maya进程,并通过套接字技术进行通信。通过预设的第三套接字,向进程对应的目标端口发送python脚本语言编写的数据写入指令,用于检测该端口是否是能接收python脚本命令的python端口,如果目标端口接收python脚本的数据写入命令,且maya进程在目标端口接收到python脚本,说明目标端口是python端口,且与maya成功建立通信,may开始执行脚本命令进入数据写入任务的流程,将目标数据写入maya软件。
124.还有一种情况,如果目标端口不接收第一语言编写的数据写入命令,向目标软件对应的进程窗口发送第二语言编写的数据写入命令。
125.也就是说,如果目标端口不接收python脚本的数据写入命令,说明目标端口不是python端口,需要向maya软件对应的进程窗口发送与目标端口类型对应的语句编写的
python脚本运行命令,以使该端口接受数据写入指令。例如,目标端口为mel端口(maya原生脚本语言),此时,外部终端会再向maya软件对应的进程窗口发送一次mel语句编写的python脚本运行命令,同样的,maya进程在端口接收到脚本执行命令后开始完成任务。
126.上述方式中,同样通过套接字通信技术,根据目标软件对应的进程占用的目标端口类型,向目标软件对应的进程窗口发送与目标端口类型对应的语句编写的python脚本运行命令,执行数据写入操作,写入成功后,也可以向外部终端返回结果,该方式完美的解决了完美的解决了batch工具不具有持续交互通信的缺点,提高任务的速度的同时,还提升了用户体验。
127.为了对本技术中外部终端控制dcc软件完成数据写入操作的过程有更系统的认识,下述分别提供3dsmax软件和maya软件通过外部终端将目标数据写入软件文件的具体实施例。
128.如图3所示,在3dsmax软件的数据处理流程中,外部终端接收到数据写入的指令后,先查询终端上打开了的所有3dsmax进程,并根据这些进程找到各自的maxscript侦听器窗口的句柄,通过sendmessage方法将命令发送到句柄所在的窗口中,通过监听器窗口将数据处理指令发送至3dsmax软件的maxscript脚本,通过maxscript脚本执行数据写入流程,待数据写入3dsmax软件中的文件后,自动向外部终端返回结果
129.该方式,通过全新的句柄通讯手段直接将需要运行的脚本信息发送给了对应的maxscript监听器窗口,执行对应的脚本以实现数据的写入,写入成功后,自动返回信号给外部终端,弥补ole、窗口句柄两种通信方式无法获取到处理结果的弊端,提高了用户的体验。该技术为项目后续的许多功能开发开拓了一种全新的思路。
130.如图3所示,在maya软件的数据处理流程中,需要实现下述步骤1)-5):
131.1)外部终端接收到数据写入指令后,外部软件遍历系统进程,找到maya相关的进程供用户选择,并保留进程pid与进程窗口名称(maya需要注意过滤掉无用的output窗口)。
132.2)用户选择需要通信的maya进程,并通过socket技术进行通信。此时会检测当前进程占用的所有端口,并发送端口检测信号,用于检测该端口是否是能接收python脚本命令的python端口,而不是mel端口。如果是mel端口,外部软件会再向该窗口发送一次mel语句编写的python脚本运行命令。如果maya进程没有检测到任何端口,外部软件会弹出错误提示,提示用户手动启动端口。
133.3)根据不同类型的端口,发送与端口类型对应的语句编写的python脚本运行命令后,与maya软件成功建立通信。
134.4)maya进程开始执行脚本命令进入数据写入任务的流程,将目标数据写入maya软件。
135.5)待数据写入3dsmax软件中的文件后,自动向外部终端返回写入成功信号及数据结果。
136.上述方式,根据maya软件对应的进程占用的目标端口类型,向maya软件对应的进程窗口发送与目标端口类型对应的语句编写的python脚本运行命令,执行数据写入操作,写入成功后,也可以向外部终端返回结果,该方式完美的解决了完美的解决了batch工具不具有持续交互通信的缺点,提高任务的速度的同时,还提升了用户体验。
137.值得注意的是,本发明也提供了在面对众多复杂应用场景时,进行数据处理的方
法。具体地,如果软件版本信息包括多种,针对每种软件版本信息建立一个线程,以通过每个线程建立每个软件版本信息对应的管理器,通过管理器执行上述数据处理方法的下述步骤:确认管理器对应的软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
138.上述软件版本信息包括多种,可以理解为不同类型的dcc软件和/同一类型的dcc软件的不同版本。上述管理器是用于管理该线程的数据处理任务的工具,具有自动重启该线程对应版本信息的软件的功能。
139.在这里,针对每种软件版本信息建立一个线程,以通过每个线程建立每个软件版本信息对应的管理器,可以以多线程的方式同时对不同格式的文件批量地执行格式转换,也具有自动重启该线程对应版本信息的软件的功能。
140.示例地,如果遇到单个3dsmax软件崩溃的情况,会自动重启3dsmax来继续完成数据处理任务;或者,在处理个别异常文件时,有概率出现进程闪退的情况,通过管路器的安全重启的措施使得该情况在第一时间快速得到解决;还有一种情况,当面对混合文件批量处理(即3dsmax、maya同时存在)的时候,也可以通过多线程的方式启动多个管理器,分别对多个dcc软件进行端口通信,在初始化过程中避开端口号冲突,从而解决通信失败、闪退等问题。
141.另外,管理器还可以同外部终端一样具有控制dcc软件进行数据处理,具体地,步骤包括:确认管理器对应的软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。该步骤与外部终端处理过程相同,故不赘述。
142.上述通过每个线程建立每个软件版本信息对应的管理器的方式,用于管理该线程的数据处理任务,避免出现因单个软件瘫痪而影响数据处理进程的情况发生,为顺利完成数据处理任务提供保障。另外,该方式也能够以多线程的方式同时对不同格式的文件批量地执行格式转换,极大提升了数据处理效率。
143.还有一种情况,为了提升批量处理任务的速度,也可以通过多进程的方式,通过一个总的管理者对象来检测当前服务器队列的空闲忙碌状态,将任务不断分发给空闲进程,提高了整体的运行效率。
144.对应于上述方法实施例,参见图4所示的一种数据处理装置的示意图,该装置包括:
145.第一信息确定模块402,用于接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;
146.第二信息确定模块404,用于确认软件版本信息指示的目标软件启动;
147.通信方式确定模块406,用于基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;
148.数据处理模块408,用于通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
149.上述数据处理装置,在外部软件与目标软件的交互过程中,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件直接进行通信,无需额外安装插件,避免影响软件的使用性能,同时也降低了通信操作的复杂性,另外,采用数据批处理操作的数据处理方式,高效准确的对软件数据进行处理,节省了人工和时间成本,提高了数据处理效率。
150.上述装置还包括第三信息确定模块,用于获取待处理的目标数据,基于上述目标数据的数据类型,确定处理目标数据的目标软件的软件类型;检测指定设备中的注册表和软件安装路径,确定目标软件的至少一个可用版本,显示至少一个可用版本的版本标识;响应于版本标识中第一版本标识的选中操作,确定目标软件的软件版本。
151.上述装置还包括工作状态确定模块,用于根据预先记录的各个软件对历史数据的处理进度,确定各个软件的当前工作状态;其中,当前工作状态指示:是否存在未处理的数据;显示各个软件的当前工作状态。
152.上述第二信息确认模块,还用于基于目标软件的软件状态,确定目标软件是否启动;如果目标软件未启动,启动目标软件。
153.上述装置还包括隐藏窗口模块,用于如果上述目标软件的软件类型为预设的第一类型,且上述数据处理方式为数据批处理操作,在目标软件启动过程中,通过预设的应用接口搜索目标软件启动过程中待显示子窗口的窗口句柄;通过窗口句柄,隐藏待显示子窗口。
154.上述数据处理方式包括:数据批处理操作;上述通信方式确定模块,还用于如果目标软件的软件类型为预设的第一类型,确定目标通信方式为套接字通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为通过目标软件的服务器进行通信的方式。
155.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括套接字通信方式;上述数据处理模块,还用于通过预设的第一套接字,将数据处理指令发送至目标软件,以控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
156.上述装置还包括第一显示模块,用于通过第一套接字实时或定时地获取目标软件的软件状态,以及目标软件针对目标数据的处理进度;如果目标软件的软件状态为崩溃状态,显示目标软件的询问信息;询问信息用于:询问是否重启所述目标软件。
157.上述装置还包括第四信息确定模块,用于确定是否查找到满足指定条件的目标数据;其中,指定条件包括指定格式或指定内容;如果查找不到满足指定条件的目标数据,确定上述目标数据需要进行转换操作,执行通过预设的第一套接字,将数据处理指令发送至目标软件的步骤;如果查找到满足指定条件的目标数据,确定目标数据不需要进行转换操作,将查找到的所述满足指定条件的目标数据作为转换结果。
158.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括:通过目标软件的服务器进行通信的方式;上述数据处理模块,还用于通过目标软件的安装路径,获取目标软件的解释器程序;通过解释器程序运行预设的脚本文件,以通过脚本文件注册第二套接字;其中,第二套接字用于:占用空闲端口运行所述目标软件的第一服务器;将数据处理指令发送至第一服务器,以通过第一服务器控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
168.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;确认软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
169.上述方式,在外部软件与目标软件的交互过程中,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件直接进行通信,无需额外安装插件,避免影响软件的使用性能,同时也降低了通信操作的复杂性,另外,采用数据批处理操作的数据处理方式,高效准确的对软件数据进行处理,节省了人工和时间成本,提高了数据处理效率。
170.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:获取待处理的目标数据,基于上述目标数据的数据类型,确定处理目标数据的目标软件的软件类型;检测指定设备中的注册表和软件安装路径,确定目标软件的至少一个可用版本,显示至少一个可用版本的版本标识;响应于版本标识中第一版本标识的选中操作,确定目标软件的软件版本。
171.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:根据预先记录的各个软件对历史数据的处理进度,确定各个软件的当前工作状态;其中,当前工作状态指示:是否存在未处理的数据;显示各个软件的当前工作状态。
172.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:基于目标软件的软件状态,确定目标软件是否启动;如果目标软件未启动,启动目标软件。
173.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:如果上述目标软件的软件类型为预设的第一类型,且上述数据处理方式为数据批处理操作,在目标软件启动过程中,通过预设的应用接口搜索目标软件启动过程中待显示子窗口的窗口句柄;通过窗口句柄,隐藏待显示子窗口。
174.上述数据处理方式包括:数据批处理操作;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:如果目标软件的软件类型为预设的第一类型,确定目标通信方式为套接字通信方式;如果目标软件的软件类型为预设的第
二类型,确定目标通信方式为通过目标软件的服务器进行通信的方式。
175.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括套接字通信方式;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:通过预设的第一套接字,将数据处理指令发送至目标软件,以控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
176.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:通过第一套接字实时或定时地获取目标软件的软件状态,以及目标软件针对目标数据的处理进度;如果目标软件的软件状态为崩溃状态,显示目标软件的询问信息;询问信息用于:询问是否重启所述目标软件。
177.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:确定是否查找到满足指定条件的目标数据;其中,指定条件包括指定格式或指定内容;如果查找不到满足指定条件的目标数据,确定上述目标数据需要进行转换操作,执行通过预设的第一套接字,将数据处理指令发送至目标软件的步骤;如果查找到满足指定条件的目标数据,确定目标数据不需要进行转换操作,将查找到的所述满足指定条件的目标数据作为转换结果。
178.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括:通过目标软件的服务器进行通信的方式;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:通过目标软件的安装路径,获取目标软件的解释器程序;通过解释器程序运行预设的脚本文件,以通过脚本文件注册第二套接字;其中,第二套接字用于:占用空闲端口运行所述目标软件的第一服务器;将数据处理指令发送至第一服务器,以通过第一服务器控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
179.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:通过第一服务器监听目标软件的工作状态,返回监听到的目标软件的状态信息;接收第一服务器返回的目标软件的状态信息。
180.上述数据处理方式包括:数据写入;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:如果目标软件的软件类型为预设的第一类型,确定目标通信方式为句柄通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为套接字通信方式。
181.上述数据处理方式包括:数据写入;上述目标通信方式包括句柄通信方式;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:获取目标软件的软件进程,通过软件进程获取目标软件的监听器窗口句柄;通过监听器窗口句柄获取目标软件的监听器窗口;通过监听器窗口将数据处理指令发送至目标软件的指定脚本,以通过指定脚本控制目标数据写入目标软件中。
182.上述数据处理方式包括:数据写入;上述目标通信方式包括套接字通信方式;上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:检测目标软件对应的进程占用的目标端口;通过预设的第三套接字,向目标端口发送第一语言编写的数据写入命令;如果目标端口接收第一语言编写的数据写入命令,且目标软件
的进程在目标端口接收到数据写入指令,执行将目标数据写入目标软件。
183.上述方法还包括:如果上述目标端口不接收第一语言编写的数据写入命令,向目标软件对应的进程窗口发送第二语言编写的数据写入命令。
184.上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述数据处理方法的下述操作:如果软件版本信息包括多种,针对每种软件版本信息建立一个线程,以通过每个线程建立每个软件版本信息对应的管理器,通过管理器执行上述数据处理方法的下述步骤:确认管理器对应的软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
185.本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述数据处理方法。
186.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:接收数据处理指令,基于数据处理指令确定待处理的目标数据、数据处理方式以及软件版本信息;其中,数据处理方式包括数据批处理操作和/或数据写入;软件版本信息指示:用于处理目标数据的目标软件的软件类型和软件版本;确认软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
187.上述方式,在外部软件与目标软件的交互过程中,根据数据处理方式和目标软件的软件类型,确定外部软件与目标软件进行通信的通信方式,使得外部软件与目标软件直接进行通信,无需额外安装插件,避免影响软件的使用性能,同时也降低了通信操作的复杂性,另外,采用数据批处理操作的数据处理方式,高效准确的对软件数据进行处理,节省了人工和时间成本,提高了数据处理效率。
188.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:获取待处理的目标数据,基于上述目标数据的数据类型,确定处理目标数据的目标软件的软件类型;检测指定设备中的注册表和软件安装路径,确定目标软件的至少一个可用版本,显示至少一个可用版本的版本标识;响应于版本标识中第一版本标识的选中操作,确定目标软件的软件版本。
189.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:根据预先记录的各个软件对历史数据的处理进度,确定各个软件的当前工作状态;其中,当前工作状态指示:是否存在未处理的数据;显示各个软件的当前工作状态。
190.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:基于目标软件的软件状态,确定目标软件是否启动;如果目标软件未启动,启动目标软件。
191.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:如果上述目标软件的软件类型为预设的第一类型,且上述数据处理方式为数据批处理操作,在目标软件启动过程中,通过预设的应用接口
搜索目标软件启动过程中待显示子窗口的窗口句柄;通过窗口句柄,隐藏待显示子窗口。
192.上述数据处理方式包括:数据批处理操作;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:如果目标软件的软件类型为预设的第一类型,确定目标通信方式为套接字通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为通过目标软件的服务器进行通信的方式。
193.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括套接字通信方式;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:通过预设的第一套接字,将数据处理指令发送至目标软件,以控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
194.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:通过第一套接字实时或定时地获取目标软件的软件状态,以及目标软件针对目标数据的处理进度;如果目标软件的软件状态为崩溃状态,显示目标软件的询问信息;询问信息用于:询问是否重启所述目标软件。
195.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:确定是否查找到满足指定条件的目标数据;其中,指定条件包括指定格式或指定内容;如果查找不到满足指定条件的目标数据,确定上述目标数据需要进行转换操作,执行通过预设的第一套接字,将数据处理指令发送至目标软件的步骤;如果查找到满足指定条件的目标数据,确定目标数据不需要进行转换操作,将查找到的所述满足指定条件的目标数据作为转换结果。
196.上述数据处理方式包括:数据批处理操作;上述目标通信方式包括:通过目标软件的服务器进行通信的方式;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:通过目标软件的安装路径,获取目标软件的解释器程序;通过解释器程序运行预设的脚本文件,以通过脚本文件注册第二套接字;其中,第二套接字用于:占用空闲端口运行所述目标软件的第一服务器;将数据处理指令发送至第一服务器,以通过第一服务器控制目标软件对目标数据的格式和/或内容进行批量的转换操作,得到转换结果,返回转换结果;接收目标软件返回的转换结果。
197.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:通过第一服务器监听目标软件的工作状态,返回监听到的目标软件的状态信息;接收第一服务器返回的目标软件的状态信息。
198.上述数据处理方式包括:数据写入;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:如果目标软件的软件类型为预设的第一类型,确定目标通信方式为句柄通信方式;如果目标软件的软件类型为预设的第二类型,确定目标通信方式为套接字通信方式。
199.上述数据处理方式包括:数据写入;上述目标通信方式包括句柄通信方式;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:获取目标软件的软件进程,通过软件进程获取目标软件的监听器窗口句柄;通过监听器窗口句柄获取目标软件的监听器窗口;通过监听器窗口将数据处
理指令发送至目标软件的指定脚本,以通过指定脚本控制目标数据写入目标软件中。
200.上述数据处理方式包括:数据写入;上述目标通信方式包括套接字通信方式;上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:检测目标软件对应的进程占用的目标端口;通过预设的第三套接字,向目标端口发送第一语言编写的数据写入命令;如果目标端口接收第一语言编写的数据写入命令,且目标软件的进程在目标端口接收到数据写入指令,执行将目标数据写入目标软件。
201.上述方法还包括:如果上述目标端口不接收第一语言编写的数据写入命令,向目标软件对应的进程窗口发送第二语言编写的数据写入命令。
202.上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述数据处理方法中的下述操作:如果软件版本信息包括多种,针对每种软件版本信息建立一个线程,以通过每个线程建立每个软件版本信息对应的管理器,通过管理器执行上述数据处理方法的下述步骤:确认管理器对应的软件版本信息指示的目标软件启动;基于数据处理方式和目标软件的软件类型,确定与目标软件进行通信的目标通信方式;通过目标通信方式,控制目标软件按照数据处理方式对目标数据进行处理,得到处理完成的目标数据。
203.本发明实施例所提供的数据处理方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
204.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
205.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
206.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
207.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
208.最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技
术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1