System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种智能调度方法,尤其是一种基于java窗口界面的智能调度方法。
技术介绍
1、在进行各类动态场景的智能调度过程中,java access bridge是提供给window平台访问java vm的一系列api.通过java access bridge可以访问到java应用程序的ui信息,以及对ui元素的操作。
2、现有技术中,apache原生的java access bridge,java access bridge在获取java ui元素时,不够稳定,且获取不到有些表格之类的元素,获取java ui元素变得尤为困难。困难点如下:
3、1、进程之间是隔离的,每个进程都有自己独立的虚拟内存空间;
4、2、windows平台下分32位和64位两类进程,对注入的要求比较高;
5、3、在已经启动的jvm里面注入jar包。
6、故本专利技术提出一种通过jar包注入的方式修正java acess bridge的方法,可以更稳定更细粒度地获取java ui元素。
技术实现思路
1、本专利技术的目的是通过提出一种基于java窗口界面的智能调度方法,以解决上述
技术介绍
中提出的缺陷。
2、本专利技术采用的技术方案如下:
3、提供一种基于java窗口界面的智能调度方法,包括如下步骤:
4、s1.1:获取窗口信息;
5、s1.2:根据策略决定是否是java窗口;
6、s1.
7、s1.4:根据平台信息选择合适的dll;
8、s1.5:尝试利用远程线程注入dll;
9、作为本专利技术的一种优选技术方案:所述s1.5中远程线程注入dll成功时,步骤如下;
10、s2.1:在目标进程开启rpc监听;
11、s2.2:注入修正之后的java access bridge;
12、s2.3:需要捕获元素的进程尝试和目标进程进行连接;
13、s2.4:通过rpc进行ui元素访问。
14、作为本专利技术的一种优选技术方案:所述s1.5中远程线程注入dll失败时,使用钩子尝试注入dll,检测是否注入成功;当检测所述钩子注入成功时,重新返回远程线程注入dll成功的步骤。
15、作为本专利技术的一种优选技术方案:当检测所述钩子注入失败时,使用queueuserapc尝试注入,检测是否注入成功;当检测所述queueuserapc注入成功时,重新返回远程线程注入dll成功的步骤;当检测所述queueuserapc注入失败时,进行异常处理并结束进程。
16、作为本专利技术的一种优选技术方案:所述s1.1中平台包括32位和64位两类进程。
17、作为本专利技术的一种优选技术方案:所述s1.3中jar包用于修正原有java accessbridge。
18、作为本专利技术的一种优选技术方案:所述s1.4中,根据平台的进程类型,即32位或64位选取对应进程类型的dll。
19、作为本专利技术的一种优选技术方案:所述s1.5中dll成功注入rpc后,通过rpc的方式访问目标进程中的ui元素及其结构。
20、作为本专利技术的一种优选技术方案:所述prc基于管道的方式建立通讯连接实现。
21、作为本专利技术的一种优选技术方案:所述ui元素的访问过程中,通过树形结构访问元素。
22、本专利技术提供的基于java窗口界面的智能调度方法,与现有技术相比,其有益效果有:
23、本专利技术通过注入jar包和dll的方式,在已经启动的基于java开发的ui捕获里面的ui元素。本方案通过jar包注入的方式修正java acess bridge获取更细粒度的ui元素,同时配合dll注入的方式(远程线程注入、queueuserapc、事件钩子等)在一个jvm进程里面创建自己的服务,从而解决进程间隔离的难题,通过工程设置以及平台设置,解决32位和64位进程注入的问题,dll成功注入到目标进程之后,可以通过基于管道的方式建立通讯连接,以此实现rpc,通过rpc的方式来访问目标进程中的ui元素以及其结构。
24、本专利技术的实现不依托于apache的java access bridge,是自定义实现,一方面可以对apache原有的实现校正,另一方面可以对apache的java access bridge获取不到的元素通过注入自定义bridge和ui service的方式,获取元素。
本文档来自技高网...【技术保护点】
1.一种基于Java窗口界面的智能调度方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.5中远程线程注入dll成功时,步骤如下;
3.根据权利要求1所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.5中远程线程注入dll失败时,使用钩子尝试注入dll,检测是否注入成功;当检测所述钩子注入成功时,重新返回远程线程注入dll成功的步骤。
4.根据权利要求3所述的基于Java窗口界面的智能调度方法,其特征在于:当检测所述钩子注入失败时,使用QueueUserAPC尝试注入,检测是否注入成功;当检测所述QueueUserAPC注入成功时,重新返回远程线程注入dll成功的步骤;当检测所述QueueUserAPC注入失败时,进行异常处理并结束进程。
5.根据权利要求1所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.1中平台包括32位和64位两类进程。
6.根据权利要求1所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.3中j
7.根据权利要求1所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.4中,根据平台的进程类型,即32位或64位选取对应进程类型的dll。
8.根据权利要求2所述的基于Java窗口界面的智能调度方法,其特征在于:所述S1.5中dll成功注入RPC后,通过RPC的方式访问目标进程中的UI元素及其结构。
9.根据权利要求8所述的基于Java窗口界面的智能调度方法,其特征在于:所述PRC基于管道的方式建立通讯连接实现。
10.根据权利要求8所述的基于Java窗口界面的智能调度方法,其特征在于:所述UI元素的访问过程中,通过树形结构访问元素。
...【技术特征摘要】
1.一种基于java窗口界面的智能调度方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的基于java窗口界面的智能调度方法,其特征在于:所述s1.5中远程线程注入dll成功时,步骤如下;
3.根据权利要求1所述的基于java窗口界面的智能调度方法,其特征在于:所述s1.5中远程线程注入dll失败时,使用钩子尝试注入dll,检测是否注入成功;当检测所述钩子注入成功时,重新返回远程线程注入dll成功的步骤。
4.根据权利要求3所述的基于java窗口界面的智能调度方法,其特征在于:当检测所述钩子注入失败时,使用queueuserapc尝试注入,检测是否注入成功;当检测所述queueuserapc注入成功时,重新返回远程线程注入dll成功的步骤;当检测所述queueuserapc注入失败时,进行异常处理并结束进程。
5.根据权利要求1所述的基于java窗口界面的智能调...
【专利技术属性】
技术研发人员:何斌,李立峰,
申请(专利权)人:上海自然而然信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。