ナレッジベース

UiPath Studio シングルクリック・ダブルクリックを実装する際のデシジョンフロー

はじめに

UiPath Activities ガイドに Click アクティビティが紹介されていますが、実現したいクリックに対し、Click アクティビティをどのように実装するのかまでは記載されていないため、本記事にて補足させていただきます。
 
本記事では Click アクティビティのオプションである Normal Click、SendWindowMessages および SimulateClick の組み合わせについて説明します。
 
ご存知かと思いますが、Activities パネルから Click アクティビティをドラッグ&ドロップしたデフォルトの状態では Normal Click となります。SendWindowMessages または SimulateClick のオプションがチェックされた時、Click アクティビティの動作が変わります。なお、SendWindowMessages と SimulateClick が両方選択されることは禁じられています。
 
decision-flow-single-double-click-image1

 

デシジョンフロー

Click アクティビティも他の入力アクションと同様に、Normal Click、SendWindowMessages、SimulateClick の 3 種類の入力メソッドが存在します。互換性・処理速度・バックグラウンドでの実行等の評価軸から SimulateClick、SendWindowMessages、Normal Click の順に試してみることを推奨します。詳細はこちらのドキュメンテーションを確認してください。
 
SimulateClick はターゲットアプリケーションに API を介し、クリックをシミュレートするため、動作は 1 種類しか存在しません。つまり、SimulateClick および ClickType:CLICK_DOUBLE の組み合わせを選択したとしても、動作するのはシミュレートしたクリックだけになるので、もし開発者が意図的にダブルクリックを実現したい場合は、SimulateClick ではなく SendWindowMessages または Normal Click を選択してください。したがって、ダブルクリックを実現したい場合は SendWindowMessages、Normal Click の順に試すことを推奨します。一方、シングルクリックを実現したい場合は、SimulateClick、SendWindowMessages、Normal Click の順に試すことを推奨します。

下図のデシジョンフローにまとめてみました。
 decision-flow-single-double-click-image2

Double Click アクティビティと Click アクティビティの差異

Double Click アクティビティを利用したことはありますか?アクティビティの名前から想像できるかもしれませんが、ダブルクリックを実現したい時に使用しているかもしれません。気づいた方もいらっしゃるかもしれませんが、実は Double Click アクティビティと Click アクティビティは UiPath 内部では同じロジックで処理されています。違いはデフォルトプロパティだけです。
 
下記をご覧ください。
 

Double Click アクティビティのデフォルトプロパティ

decision-flow-single-double-click-image3

 

Click アクティビティのデフォルトプロパティ

decision-flow-single-double-click-image4
 
違いは一目瞭然で、両アクティビティは同じく UiPath.Core.Activities.Click のロジックを使用し、DisplayName および ClickType の値だけが異なります。したがって、本記事に記載された内容は Double Click アクティビティにも適用されます。つまり、ダブルクリックを実現したい時は Double Click アクティビティを選択したとしても、SimulateClick の入力メソッドは使用しないでください。使用した場合、Activity ガイドに記載されているように、エラーが発生するためご注意ください。

 

参考リンク