UiPath イベント情報を取得 アクティビティ
この記事ではトリガーアクティビティから発生する
各種イベント(マウスクリックやキー入力)の情報を取得する、
「イベント情報を取得」の機能と使い方を紹介します。
アクティビティの使い方
デザイナーパネルにイベントを監視を設置し、
イベントハンドラーの中にイベント情報を取得をドロップします。
![デザイナーパネルにイベントを監視を設置し、 イベントハンドラーの中にイベント情報を取得をドロップ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-330.png)
取得できる情報には入力されたキーや
マウスでクリックされたボタン(左・右・スクロールなど)、
クリックされた位置などが該当します。
トリガーによっては対象を操作することも可能です。
詳細は各トリガーアクティビティの記事で紹介します。
プロパティ
共通
![共通プロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-331.png)
表示名はデザイナーパネルに反映されます。
その他
TypeArgument
![TypeArgumentプロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-333.png)
イベント情報を受け取るデータ型を指定します。
初期状態でUiPath.Core.EventInfoが初期設定されているので
殆どのケースでそのまま使用します。
結果
![結果プロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-361.png)
イベント情報を受け取る変数を指定します。
(以後、イベント変数と記載)
データがはTypeArgumentで指定したデータ型ですが、
UiPath.Core.EventInfoを使用することになります。
プライベート
UiPathのログに引数や変数の値が表示されるかを指定します。
機密性の高い情報を取り扱う場合にのみチェックする必要があります。
![プライベートのキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-246.png)
取得情報と操作
マウスクリックかキー入力かの判定
システムトリガーでキーボードとマウスの両方に対応したり、
情報取得や操作を行う前にどちらが実行されたかを
条件分岐で判定しないとエラーが発生する場合があります。
(クリックに対してキーボード入力イベントを参照するなど)
具体的にはイベント変数の特定プロパティが
Notingであるかないかで判定します。(Nothingにアクセスするとエラー発生)
プロパティ | クリック | キーボード |
---|---|---|
イベント変数.KeyEventInfo | Noting | |
イベント変数.MouseEventInfo | Noting |
Nothing は=では比較できないためis Nothingを使用します。
以下のようにするとマウスクリックがThen(True)、
キーボード入力がElse(False)になります。
イベント変数.KeyEventInfo is Nothing
![条件分岐でクリックかキー入力かを判別](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-360.png)
キーボード入力関連情報の取得と操作
キーボード入力を検知する場合に可能な情報取得と操作について紹介します。
入力されたキーの情報を取得
「イベント変数.KeyEventInfo.Key」にどのキーが入力されたかが格納されます。
1行で書き込みに表示する場合はToStringで文字列に変換する必要があります。
![入力されたキーの情報を1行に書き込みで表示](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-345.png)
条件分岐でキーが押されたかを判定することも可能です。
こちらもToStringで判定しましょう。
キープロパティの設定とは大文字・小文字等が異なるので
使用する場合は事前に文字列を確認しておきましょう。
![](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-347.png)
入力されたキー修飾子の情報を取得
「イベント変数.KeyModifier」にどのキー修飾子が入力されたかが格納されます。
1行で書き込みに表示する場合はToStringで文字列に変換する必要があります。
![入力されたキー修飾子の情報を1行に書き込みで表示](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-346.png)
条件分岐でどのボタンが押されたかを判定することも可能です。
その判定式は下です。(キー修飾子定数は後述のものに置換)
イベント変数.KeyModifier = キー修飾子定数
キー修飾子定数は同時押しにも対応しています。
キー修飾子定数 | Alt | Ctrl | Shift | Windows |
---|---|---|---|---|
KeyModifier.None | ||||
KeyModifier.Alt | ● | |||
KeyModifier.Ctrl | ● | |||
KeyModifier.Shift | ● | |||
KeyModifier.Win | ● | |||
KeyModifier.Alt_Ctrl | ● | ● | ||
KeyModifier.Shift_Alt | ● | ● | ||
KeyModifier.Win_Alt | ● | ● | ||
KeyModifier.Shift_Ctrl | ● | ● | ||
KeyModifier.Win_Ctrl | ● | ● | ||
KeyModifier.Win_Shift | ● | ● | ||
KeyModifier.Shift_Alt_Ctrl | ● | ● | ● | |
KeyModifier.Win_Alt_Ctrl | ● | ● | ● | |
KeyModifier.Win_Shift_Ctrl | ● | ● | ● | |
KeyModifier.Win_Shift_Alt_Ctrl | ● | ● | ● | ● |
マウスクリック関連情報の取得と操作
マウスクリックを検知する場合に可能な情報取得と操作について紹介します。
クリックされたボタンの情報を取得
「イベント変数.MouseEventInfo.Button」に
どのマウスボタンをクリックされたかが格納されます。
1行で書き込みに表示する場合はToStringで文字列に変換する必要があります。
![クリックされたボタンの情報を1行で書き込みに表示](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-316.png)
条件分岐でどのボタンが押されたかを判定することも可能です。
![左クリックであるかを判定する条件分岐](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-317.png)
条件式 | 判定 |
---|---|
イベント変数.MouseEventInfo.Button = MouseButton.BTN_LEFT | 左クリックである |
イベント変数.MouseEventInfo.Button = MouseButton.BTN_RIGHT | 右クリックである |
イベント変数.MouseEventInfo.Button = MouseButton.BTN_MIDDLE | スクロールホイールである |
クリックと同時押しされたキーの情報を取得
「イベント変数.KeyModifier」にはどのキーが同時押しされたかが格納されます。
1行で書き込みに表示する場合はToStringで文字列に変換する必要があります。
![同時押しされたキーの情報を1行で書き込みに表示](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-320.png)
条件分岐でどのボタンが押されたかを判定することも可能です。
その判定式は下です。(キー修飾子定数は後述のものに置換)
イベント変数.KeyModifier = キー修飾子定数
キー修飾子定数は同時押しにも対応しています。
キー修飾子定数 | Alt | Ctrl | Shift | Windows |
---|---|---|---|---|
KeyModifier.None | ||||
KeyModifier.Alt | ● | |||
KeyModifier.Ctrl | ● | |||
KeyModifier.Shift | ● | |||
KeyModifier.Win | ● | |||
KeyModifier.Alt_Ctrl | ● | ● | ||
KeyModifier.Shift_Alt | ● | ● | ||
KeyModifier.Win_Alt | ● | ● | ||
KeyModifier.Shift_Ctrl | ● | ● | ||
KeyModifier.Win_Ctrl | ● | ● | ||
KeyModifier.Win_Shift | ● | ● | ||
KeyModifier.Shift_Alt_Ctrl | ● | ● | ● | |
KeyModifier.Win_Alt_Ctrl | ● | ● | ● | |
KeyModifier.Win_Shift_Ctrl | ● | ● | ● | |
KeyModifier.Win_Shift_Alt_Ctrl | ● | ● | ● | ● |
クリックされた位置の情報を取得
イベント変数にはマウスクリック位置の情報も格納されます。
アクセス方法 | 情報 |
---|---|
イベント変数.Position.Rectangle.Value.X | 横位置(X) |
イベント変数.Position.Rectangle.Value.Y | 縦位置(Y) |
クリックされたウインドウを操作
メソッドを呼び出しを利用すればクリック対象のウインドウを操作できます。
(操作不可能なウインドウもあります)
ターゲットオブジェクトに「イベント変数.TargetWindow」を指定し
行いたい操作に合わせてパラメーターとメソッド名を指定します。
![メソッドを呼び出しのプロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-321.png)
操作 | メソッド名 |
---|---|
閉じる | Close |
最大化 | Maximize |
最小化 | Minimize |