トリガー処理について紹介します。
トリガー処理とは、「クリックされた」「キーボードが押された」「ファイルが変更された」などといったイベントを検知して、そこから処理を動き始めさせたいときに使うものです。
使う際にはずっとUiPathのロボットを起動させた状態にしておかなければなりませんが、何時に動かすというのが決まっておらず、ファイルがきたら自動で動いてね、というときに便利かと思います。
種類は主に以下の3つに分けられます。
①マウスクリック系
②キーボード操作系
③ファイル操作系
まず、すべての種類に共通して必要な操作を紹介します。
トリガー処理は基本的にMonitor Eventsというアクティビティの中で使用します。(Activities>Available>User Events>Monitor Events)
「Drop trigger activity here」というところにトリガーのアクティビティをセットし、Event handlerの中にトリガーを検知したあとに行う処理を入れます。
また、PropatiesのRepeatForeverをTrueにしていると処理が永遠に続き、Falseにすると処理は1回で終わります。(監視をずっと続けたいのであればTrueで、1回しかやらないのであればFalseにしましょう。)
次からいろいろなトリガーについて見ていきたいと思います。
マウスクリック系は、クリックがトリガーとなるものです。アクティビティは以下があります。
・Activities>Available>User Events>Element Trigger>Click Trigger
・Activities>Available>User Events>Image Trigger>Click Image Trigger
・Activities>Available>User Events>System Trigger>Mouse Trigger
・Activities>Available>User Events>System Trigger>System Trigger
Click Triggerは普通のClickと同じようにクリックする対象を選択し、その対象がクリックされたときにEvent Handlerに進むものとなります。
以下の例では、GoogleのGoogle検索というボタンがクリックされたときに「トリガー検知」というメッセージボックスが開くというようになっています。
Click Image Triggerは対象のイメージ画像がクリックされたときにEvent Handlerに進むものとなります。
以下の例では、Googleのロゴがクリックされたときに「トリガー検知」というメッセージボックスが開くというようになっています。
Mouse Triggerはとにかく、対象のキーとマウスがクリックされたときにEvent Handlerに進むものとなります。
以下の例では、Ctrlキーを押しながら右クリックしたときに「トリガー検知」というメッセージボックスが開くというようになっています。
System Triggerはさらに問答無用で、マウスがクリックされたときにEvent Handlerに進むものとなります。
TriggerInputをMouseだけにするとMouseだけが対象となります。
以上が、マウスクリック系のトリガーとなります。
続いてキーボード操作系は、キーボードを押すことがトリガーとなるものです。アクティビティが以下があります。
・Activities>Available>User Events>Element Trigger>Key Press Trigger
・Activities>Available>User Events>System Trigger>Hotkey Trigger
・Activities>Available>User Events>System Trigger>System Trigger
Key Press Triggerは指定の場所で対象のキーを押したときにEvent Handlerに進むものとなります。
以下の例では、Googleの検索ボックスを入力する状態で、”a”のキーを押したときに「トリガー検知」というメッセージボックスが開くというようになっています。
ちなみに、日本語入力がオンになっているとトリガー検知されなかったのでご注意ください。(EnterなどのSpecialKeyであれば検知されます)
Hotkey Triggerは場所の指定なしで、対象のキーが押されたときにEvent Handlerに進むものとなります。
以下の例では、Ctrlキーと”a”のキーを押したときに「トリガー検知」というメッセージボックスが開くというようになっています。
System Triggerはクリックと同じく、問答無用で何かのキーが押されたらEvent Handlerに進むものとなります。
TriggerInputをKeyboardだけにするとKeyboardだけが対象となります。
最後にファイル操作系のトリガーを紹介します。これが一番需要ありそうな気がします。
・Activities>Available>System>File>File Change Triggerを使用します。
PropatiesのFileNameに対象のファイル名、Pathに対象のフォルダを指定します。
そして、ChangeTypeにどの変更が行われたら検知するかを指定します。(パターンは「Created」「Deleted」「Changed」「Renamed」「All」があります。)
また、NotifyFiltersに何を基準に変更と見なすかを指定します。(パターンは「FileName」「DirectoryName」「Attributes」「Size」「LastWrite」「LastAccess」「CreationTime」「Security」です。)
例えば、対象ファイルのファイル名が変わったら検知したい、であればChangeTypeに「Renamed」を選択し、NotifyFiltersに「FileName」を選択します。
フォルダに対象の名前のファイルが作成されたときに検知したい、であればChangeTypeに「Created」を選択し、NotifyFiltersに「FileName」を選択します。
なお、一回違う名前でファイルを作ってからファイル名を対象のものに変えても反応しないようなので、別の場所からファイルをコピーしてくるイメージです。
など、いろいろパターンは試してみてください。
以上、トリガー処理の紹介でした。
ちなみにトリガーはパラレルのように横にいくつも並べられるので、いろいろなトリガーを並行して動かしておくことが出来ます。(その後に動く動作は一つですが。)