はじめに
- 本記事は、PiPモードで実行した際のクリップボード共有課題の回避実装サンプルを扱います。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 25.0.161 バージョンのもので構成しています。
クリップボード共有課題
回避実装サンプル
たとえば、
「クリップボードに設定」で値Xをコピーし、
「キーボードショートカット(Ctrl+V)」で値を貼り付ける実装があった場合、
次の様に回避実装をおこないます↓↓↓
「代入」でクリップボードの中身を退避
左辺:退避用オブジェクト(System.Object型) 右辺:ClipboardX.ObjectValue
→
「クリップボードに設定」で値Xをコピー
→
「キーボードショートカット(Ctrl+V)」で値を貼り付ける
→
「代入」でクリップボードの中身を戻す
左辺:ClipboardX.ObjectValue 右辺:退避用オブジェクト(System.Object型)
空振り対策でリトライスコープを入れる場合、クリップボードの退避・戻しの挿入位置にご注意ください。
※退避と戻しの間隔が開いてしまうと意図しないコピー発生リスクが上がってしまうため
【 ×:良くない例 】
「代入」:クリップボード退避
「リトライスコープ」
「クリップボードの設定」
「キーボードショートカット(貼り付け)」
「代入」:クリップボード戻し
【 〇:良い例 】
「リトライスコープ」
「代入」:クリップボード退避
「クリップボードの設定」
「キーボードショートカット(貼り付け)」
「代入」:クリップボード戻し
さいごに
いかがでしたでしょうか。
値設定&値利用の直前・直後に「代入」アクティビティを挿入してクリップボードの中身を退避・戻すだけです!
UiPathのPiPは、クローンをつくるものではなく、Microsoftの”子セッション”という技術をもちいて疑似的にロボットの実行環境をもう一つ作っています。
https://learn.microsoft.com/ja-jp/windows/win32/termserv/child-sessions
このため、メインセッション(親セッション)と子セッションでリソースを共有する部分も多く、資格情報を求めずに自動ログオンからロボット実行ができるメリットなどありますが、今回の様にセッション毎にリソース分けられずデメリットになるケースもでてきます。
コンマ数秒に手元のコピペが被るケースはそれほどないとおもいますので、「PiP × クリップボード」で困っている方がいたら本記事を教えてあげていただけますと幸いです(・ω・)ノ