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模式的。
當然根據原理和具體表現的其他特征,我們還能推導出更多場景的適用方式。