RPAエンジニアの雑記

RPA(Blue Prism)について色々記載してます。

(BluePrism)キー送信のお作法

こんばんは、おむおむです。ちまちま更新します。

 

先日の記事で、「お作法通りキー送信してね!」と記載しましたが、
「よく考えたらお作法をご存じでない方が多いのでは・・・?」
「ドキュメント英語だし読んでない人もいる・・・?」と思い、
改めて別記事として書いてみようという運びになりました。

ちなみにそのドキュメントとは以下です。
読んだことがある方はそっ閉じしてください☆

Guide to Send Keys and Send Key Events
https://portal.blueprism.com/system/files/2018-02/Guide%20to%20Send%20Keys%20and%20Send%20Key%20Events.pdf

 

【お作法その1】

Win32モードでアプリケーションのウィンドウ要素をスパイします。
基本ウィンドウ全体が枠で囲まれていればよいと思うよ。

f:id:newgraduate19:20200115215101p:plain

 

ちなみに、「ウィンドウ」要素かどうかの確認は、
アプリケーションモデラーの「要素タイプ」を見てください。

f:id:newgraduate19:20200115215451p:plain

あとキーを特定の入力欄などに送信したい場合は
当然ですがその要素もスパイするようオナシャス。

 

【お作法その2】

操作ステージを配置します。
1つの操作ステージの中に複数アクションを設定するのが一般的?なのかな?

自分はステージ数が増えすぎることと、
ステップ実行するときの挙動が変わるのが面倒なのでまとめてしまうことが多いです。

使用する内容は以下の通り。

▼アクション1
要素:ウィンドウ要素
アクション:アプリケーションをアクティブ化

▼アクション2(特定の入力欄にキー送信する場合のみ)
要素:キーを入力したい要素
アクション:フォーカス or グローバルマウスクリック(中央)

▼アクション3
要素:アプリケーションのルート要素(アプリケーションエクスプローラの最上位)
アクション:グローバルキー送信
テキスト:送信したいキー
間隔:キーとキーの送信時間間隔

 

要は、アクティブになっているアプリケーションの、
アクティブな要素に対してキーを送信するということですね。
手数は多いけど内容としてはそんなに複雑ではない(はず)。。。

 

ちなみに、アプリケーションがアクティブになるまでちょっと時間がかかるので、
0.25秒~0.5秒ぐらい待機時間設けるとより安定するかと思われます。

f:id:newgraduate19:20200115220927p:plain

 

実行してみるとこんな感じ。(送信しているキーの内容に特に意味はないです)

f:id:newgraduate19:20200115221814g:plain

やったぜ

 ちなみに仮想環境上にあって、モニターに表示させずに実行する場合は
キー送信そのものが使用できないなど、制約がもろもろあるので
詳しくはドキュメント読んでくだしあ~

 

また少しずつ更新します。。。