一种基于微软子会话运行RPA应用的方法、电子设备及计算机存储介质技术

技术编号:38989995 阅读:10 留言:0更新日期:2023-10-07 10:20
本发明专利技术提供了一种基于微软子会话运行RPA应用的方法、电子设备及计算机存储介质。本发明专利技术的方案将本地RPA应用信息通过IPC发送到子会话中运行,子会话中应用运行完成后将结果返回给本地会话,使得当用户只有一台机器,需要在运行自动化应用的同时实现在本机进行其他操作。操作。操作。

【技术实现步骤摘要】
一种基于微软子会话运行RPA应用的方法、电子设备及计算机存储介质


[0001]本专利技术涉及计算机
,具体而言,涉及一种基于微软子会话运行RPA应用的方法、电子设备及计算机存储介质。

技术介绍

[0002]现有RPA厂商大多只能在本地或者通过RDP等协议远程连接到其他虚拟桌面运行应用。在本地运行应用时,通过Hook技术来模拟人工对鼠标和键盘的一些操作,同时依赖桌面渲染对应用窗口和网页元素等进行抓取,本地将无法操作鼠标键盘而继续进行其他工作;而通过远程连接到服务器虚拟桌面时,消息通过虚拟通道发送到远程桌面,本地的代理窗口会被调起,无法实现在窗口最小化的状态下运行远程应用,这样都给用户带来了不便。
[0003]微软远程桌面使用远程桌面服务技术允许单个会话远程运行。用户可以使用远程桌面连接(RDC)客户端软件连接到远程桌面会话主机服务器。子会话是一个特殊的环回远程桌面会话,它与用户现有会话相关联,共用本机的文件系统。
[0004]但是,当用户只有一台机器,并且希望能够在运行自动化应用的同时在本机进行其他工作,当前的RPA厂商并不能满足需求。

技术实现思路

[0005]为了至少解决上述
技术介绍
中存在的技术问题,本专利技术提供了一种基于微软子会话运行RPA应用的方法、电子设备及计算机存储介质。
[0006]本专利技术的第一方面提供了一种基于微软子会话运行RPA应用的方法,所述方法包括如下步骤:
[0007]在本地会话中创建子会话,本地应用运行时将应用数据发送到所述子会话中;
[0008]所述子会话调起自动化引擎,完成与所述应用数据相关的自动化指令的执行,将执行结果返回给本地客户端。
[0009]在一些实施例中,所述在本地会话中创建子会话,包括:
[0010]基于Qt创建虚拟桌面窗口,调用QAxWidget::setControl(uuid)将远程桌面ActiveX控件嵌入到主窗口中;其中uuid为MsTscAx.dll中ActiveX控件的CLSID;
[0011]在系统上使用所述子会话之前,通过调用WTSEnableChildSessions函数来启用子会话功能;
[0012]以及,在调用MsTscAx::Connect()方法进行连接会话之前,将“ConnectToChildSession”属性与IMsRdpExtendedSettings.Property进行连接并将属性值设为true;
[0013]以及,对于所述子会话的各类事件回调,通过实现IMsTscAxEvents类并attach到MsTscAx实例中。
[0014]在一些实施例中,通过IPC将所述应用数据发送到所述子会话中。
[0015]在一些实施例中,在本地应用运行之前,先在子会话中启动RPA客户端。
[0016]在一些实施例中,所述子会话调起自动化引擎,完成与所述应用数据相关的自动化指令的执行,包括:
[0017]所述本地会话在运行自动化应用时,将应用的信息序列化成json,通过IPC发送到所述子会话中,子会话服务进程收到消息后调起自动化引擎去运行应用,完成与所述应用数据相关的自动化指令的执行。
[0018]在一些实施例中,所述方法还包括子会话服务进程自启动步骤,包括:
[0019]启动,判断当前会话是否是子会话;若否,则结束;
[0020]若是,则继续判断是否以管理员权限启动;若是,则降权调起本进程,结束;若否,则与本地会话建立IPC连接,创建线程监听本地会话消息。
[0021]在一些实施例中,将系统的最大远程数修改为大于1。
[0022]在一些实施例中,本地会话在子会话中运行与指定应用程序相关的自动化时,提示用户关闭上述本地的上述指定应用程序。
[0023]本专利技术的第二方面提供了一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,执行如前任一项所述的方法。
[0024]本专利技术的第三方面提供了一种计算机存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前任一项所述的方法。
[0025]本专利技术的有益效果在于:
[0026]1)在子会话中运行应用时,由于自动化引擎对鼠标键盘的Hook是在子会话中进行的,对于本地系统并没有影响,同时会话之间共用文件系统,子会话中运行的应用就如同运行在本地会话中一样。
[0027]2)由于子会话在启动时,并不需要输入凭据即可自动登录,同时自动化引擎基于RPC实现了远程同步调用函数接口,不需要在子会话中启动客户端即可运行应用,大大提升了自动化程度。
[0028]3)本地会话和子会话中的进程通过IPC进行通信,而不通过虚拟通道,子会话窗口在收到消息时窗口并不会调起,同时自动化依赖的桌面渲染仍然可以在子会话中进行,因此可以保持窗口最小化时运行应用。
附图说明
[0029]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0030]图1是本专利技术实施例公开的一种基于微软子会话运行RPA应用的方法的流程示意图;
[0031]图2是本专利技术实施例公开的一种基于微软子会话运行RPA应用的方法的原理示意图;
[0032]图3是本专利技术实施例公开的子会话启动流程示意图;
[0033]图4是本专利技术实施例公开的一种电子设备的结构示意图。
具体实施方式
[0034]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0035]参阅图1、2所示,本专利技术实施例公开了一种基于微软子会话运行RPA应用的方法,所述方法包括如下步骤:
[0036]在本地会话中创建子会话,本地应用运行时将应用数据发送到所述子会话中;
[0037]所述子会话调起自动化引擎,完成与所述应用数据相关的自动化指令的执行,将执行结果返回给本地客户端。
[0038]本专利技术为用户在本地提供了一个独立的会话来运行应用,使用远程桌面ActiveX控件创建虚拟桌面窗口并登录到子会话中,能够将本地RPA客户端启动的应用放到子会话中执行,同时虚拟桌面窗口能够保持最小化,从而不会影响到本机的工作,并且由于子会话和本地会话共用本机文件系统,子会话中生成的执行结果文件在本地依然可以访问在子会话中运行应用时,同时会话之间共用文件系统,子会话中运行的应用就如同运行在本地会话中一样。
[0039]在一些实施例中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微软子会话运行RPA应用的方法,其特征在于,所述方法包括如下步骤:在本地会话中创建子会话,本地应用运行时将应用数据发送到所述子会话中;所述子会话调起自动化引擎,完成与所述应用信息相关的自动化指令的执行,将执行结果返回给本地客户端。2.根据权利要求1所述的一种基于微软子会话运行RPA应用的方法,其特征在于:所述在本地会话中创建子会话,包括:基于Qt创建虚拟桌面窗口,调用QAxWidget::setControl(uuid)将远程桌面ActiveX控件嵌入到主窗口中;其中uuid为MsTscAx.dll中ActiveX控件的CLSID;在系统上使用所述子会话之前,通过调用WTSEnableChildSessions函数来启用子会话功能;以及,在调用MsTscAx::Connect()方法进行连接会话之前,将“ConnectToChildSession”属性与IMsRdpExtendedSettings.Property进行连接并将属性值设为true;以及,对于所述子会话的各类事件回调,通过实现IMsTscAxEvents类并attach到MsTscAx实例中。3.根据权利要求1所述的一种基于微软子会话运行RPA应用的方法,其特征在于:通过IPC将所述应用数据发送到所述子会话中。4.根据权利要求1所述的一种基于微软子会话运行RPA应用的方法,其特征在于:在本地应用运行之前,先在子会话中启动RPA客户端。5.根据权利要求1...

【专利技术属性】
技术研发人员:何斌李立峰张雷
申请(专利权)人:上海自然智动网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1