【第83回】ロータス博士のWinActor塾~イベント監視Ⅱ
今日はイベント監視の続きじゃ!
前回は主に画面の見かたについて説明したと思うが
ここからは実践しつつ覚えていこう。
実践!いいですね!
一覧で見せられて全部覚えましょうって言われたら
ストライキとか考えてましたよ。
え?そこまで?
まあ今回はその心配は無用じゃ。
フォルダ監視のシナリオをひとつ作ろうと思うぞ。
(なんかCMし始めたぞ・・・しかも入りが下手!)
とにかく・・・ひとつシナリオを作ってみよう。
それから設定をいじって色々と試してみるのもありじゃな。
前回の記事はこちら
シナリオフローの準備
イベント監視
イベント監視ノードは、イベント一覧に登録されたイベントトリガーの監視を行い、検知した際に
イベント一覧に登録された呼び出し処理を実行します。
監視中は後続処理に進みません。
ノードは以下の場所に格納されています。
ノード > フロー > イベント監視
まずは何も考えずにシナリオフローに配置してみよう。
このノードは置くだけで、特に設定が必要となるプロパティは無いぞ。
サブルーチンの用意
イベント監視では、イベントトリガーを検知した際の遷移先として
「サブルーチン」「サブシナリオ」の2つから選択できます。
今回はサブルーチンに遷移するシナリオを作成しますので、予めサブルーチンを用意しておきましょう。
サブルーチンを配置したら、名前を「WinActor塾フォルダ更新時」に変更します。
さらに、サブルーチンに遷移したことがわかるように
サブルーチン内に「待機ボックス」ノードをひとつ設置して、メッセージを出力します。
このようなサブルーチンが用意できればOKです。
この時点で、シナリオ全体は以下のようになっているはずです。
上図のようにできていれば問題ない。
これで事前準備はおしまいじゃ。
続いてイベント一覧画面からイベントトリガーを設定しよう。
イベント監視登録
ここからはイベント一覧タブ画面での操作になります。
イベント監視を新しく登録するため、まずはツールアイコンの「追加」ボタンをクリックしましょう。
「追加」ボタンをクリックすると、イベント監視を登録するためのプロパティウィンドウが表示されます。
プロパティウィンドウで、下図の赤枠部分を次のように設定してください。
「イベント監視名」を"WinActor塾フォルダ更新"とします。これはイベント一覧ウィンドウ上での表示名となるので
わかりやすい名称であれば自由に設定して構いません。
「イベントトリガー」はプルダウンとなっているので、一覧からトリガーを選択します。
今回のシナリオでは、フォルダの更新を検知したいので「特定フォルダの更新」を選択します。
「監視対象とするかの初期値」のチェックボックスを"オン"にします。
イベント監視は、必要に応じてイベント毎にオンオフの切り替えが可能です。
ここでチェックを入れることで、シナリオ開始後にオン状態にする必要がなくなります。
この切り替えの部分については次回以降に詳しく説明するぞ。
呼び出し処理のラジオボタンは「サブルーチン呼出」のほうをチェック状態にします。
ここまでで赤枠部分の設定は完了です。
画像の通りの状態になったら、次は遷移先のサブルーチンを設定します。
「サブルーチン名」の右にある「設定」ボタンをクリックしましょう。
プロパティウィンドウの表示が切り替わりますので
そのまま「サブルーチン名」のプルダウンから"WinActor塾フォルダ更新時"を選択しましょう。
ちなみにこの時点でサブルーチンを作成していないと
プルダウンの選択肢に出てこないため設定し直しになってしまうのじゃ。
必ず遷移先を準備してから、イベント監視登録に進むようにしよう。
「OK」ボタンでサブルーチンの遷移先を確定したら、元の画面に戻ります。
「サブルーチン名」に先ほど選択したものが表示されるので確認しておきましょう。
続いて、監視したいフォルダを設定します。
イベントトリガーを設定すると表示される詳細パラメータエリアから
「監視対象フォルダ」を設定し、監視したいフォルダを選択しましょう。
エリア右側にある「...」ボタンをクリックします。
下図のようなフォルダ選択ダイアログが表示されるので、ここから監視先のフォルダを選択します。
今回の例では"C:\WinActor塾"としています。
上の階層から辿っていき、対象フォルダを見つけます。
フォルダが見つかったら、選択した状態で「OK」ボタンを押すことで設定できます。
設定されたフォルダは「監視対象フォルダ」に表示されます。
指定したフォルダが間違っていないか確認しましょう。
ここまでの設定が全て完了したら、プロパティ下部の「OK」を押下して登録完了です。
登録したイベント監視は、イベント一覧タブ画面に追加されます。
この通りにできているかな?
問題なければ実行してみよう!
実行結果
それでは、シナリオを実行してみましょう。
実行するとフロー上の「イベント監視」ノードが実行状態(青枠でフォーカス)となっているのがわかります。
これが監視中の状態です。
イベント一覧タブ画面でも「状態」が監視中に変化していることがわかります。
ではこのままフォルダ内をいじってみましょう。
新しいファイルを作成したり、既にあるファイルを編集したり、ファイルを削除したり・・・
フォルダ内の情報が変化するような操作は全て検知されます。
試しに適当なファイルをフォルダ内に入れると
しっかりと検知されました。
OKを押すとまた監視に戻ります。
イベント監視を止める
博士!このシナリオ終わらないんですけど!
もう監視やめたいのに・・・
確かにこの状態じゃと、遷移先でシナリオ停止をしない限り止まらんのう。
では一旦シナリオ停止ボタンを押して停止して、少し改良しよう。
今回のこの挙動は、イベント監視を作る際に重要じゃから覚えておくのじゃぞ。
イベント監視は、トリガーを検知して遷移先に移ったあと、呼び出し元であるイベント監視に戻ってきます。
戻るともう一度監視状態となるため、一度検知したら監視をやめたいとった場合には監視を終了させる必要があります。
ただし、イベントの検知によって監視が終了するか継続されるかは、イベントトリガーの種類によって異なります。
今回トリガーに使った「特定フォルダの更新」は
何度も検知されるタイプというわけじゃ。
イベント監視終了
イベント監視終了ノードは、イベント監視で実施している監視中の処理を終了させるものです。
ノードは以下の場所に格納されています。
ノード > フロー > イベント監視終了
このノードはイベント監視ノードと同様にプロパティに設定すべき項目はありません。
配置したノードを通過した際にイベント監視が行われなくなります。
では、一度検知したらイベント監視が終了されるように
サブルーチン内の最後に「イベント監視終了」ノードを配置しましょう。
あ、ほんとだ!
この通りにシナリオを修正したら
ちゃんと終了するようになりました!
よしよし、ではこれで完成じゃな。
どうじゃ?イベント監視を設定する流れがなんとなくわかったじゃろう。
もう完璧ですよ!
どんとこいシナリオ監視!
イベントトリガーもたくさん種類があったりするからもう少しお勉強が必要じゃ。
さらに、今回の監視終了のさせかたでは良くない場合もあるのじゃ。
その話も次回以降にしていこうと思う。
ええ・・・これで終わりじゃないんだ。
意気込んで損した!
意気込みに損得あるんか・・・。
次回連続になるか、違うテーマが間に入るかは未定じゃが
覚えるべきことはまだ残っておるから、少しずつ極めていこう。
ということでまた次回じゃ!
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10