UiPath-默认、SendWindowMessages和SimulateType(SimulateClick)三种鼠标键盘模拟行为

UiPath中,模拟鼠标和键盘支持3种模式:

Default、SendWindowMessages、SimulateType(SimulateClick)(SimulateType是输入,SimulateClick是点击)

Default模式:SendWindowMessages、SimulateType(SimulateClick)不选或都为false时

 

这三种有什么样的区别?

我们从原理和具体表现两个角度来区分他们。

原理:

 

这是官方文档上的图。

按照官方的说法,Default模式是基于系统驱动的方式,来模拟键盘和鼠标行为。是最接近真实的鼠标和键盘的方式。

SendWindowMessages模式,是通过向应用程序发送Window Message进行模拟的。是基于应用的方式。

SimulateType(SimulateClick)模式,是通过向UI元素发送消息进行模拟的。是基于UI元素的。

于是根据原理并官方文档我们可以得出下表:

类型 基于 兼容程度 响应速度
Default 系统驱动(最接近真实鼠标键盘的方式) 全部
SendWindowMessages 应用 大部分
SimulateType(SimulateClick) UI元素 一部分

 

 

具体表现:

我们在桌面创建了txt,并在uipath中,创建3个Keyborad.TypeInfo活动。

第一个我们使用Default的模式,第二种我们选择SendWindowMessages模式,第三种我们使用SimulateType模式。

 

分别向这个txt文件输入文字。

然后我们启动程序,当这个程序在向这个txt文件输入文字时,我们尝试每次在输入前,把鼠标光标挪开到其他应用程序窗口。

 

我们会发现:

类型 光标 文字
Default 本来在其他应用程序窗口的光标,会移动到txt文本框内。 文字是一个个打出的
SendWindowMessages 在其他应用程序窗口的光标不会被移动 文字是一个个打出的
SimulateType 在其他应用程序窗口的光标不会被移动 文字是瞬间出来的

总结:

根据上表的光标特性,当我们的机器人运行在有人工作的电脑上,我们是不能使用default模式的。

当然根据原理和具体表现的其他特征,我们还能推导出更多场景的适用方式。

 

posted @ 2020-08-13 18:01  半个读书人  阅读(2163)  评论(0编辑  收藏  举报