MEMONICA

MEMONICA

RPAやプログラミングなどの自分用技術メモブログです。

【Blue Prism】Global Send Keys , Global Send Key Events

Global Send Keys についてのまとめ。

Glabal Send Keys (グローバルキー送信)、Global Send Key Events(グローバルキーイベント送信)は共に、実際のキーボードからの入力と同じような動作をさせたい時に利用します。

Global Send Keys

ほとんどのアプリケーションで機能し、Key Eventsの上位レベル。まずはこっちを試すといい。 

Global Send Key Events

全てのアプリケーションで機能し、特にCitrixアプリケーションに推奨される送信方法。OSのキーボードのキーストロークを模倣する下位レベルのインターフェース。

使い方

  1. キー送信したいページやウィンドウを「Activate Application」する
  2. 入力欄を「Focus」する (Global Mouse Clickでも可)
  3. アプリケーションに対して「Global Send Keys」

f:id:zamdin:20200725210930p:plain

Global Send Keysは、実行中の全てのウィンドウの最上位になるようにアクティブにする必要がある。そのため、画面がロックやスクリーンセーバー中だと機能しない。

Focus か Global Mouse Click か?

キー送信する前には入力欄をフォーカスする必要がある。

ブラウザ系(IEChrome)⇒ Focus
アプリケーション系、領域 ⇒ Global Mouse Click

Global Mouse ClickはIEChromeなどのブラウザ系のスパイモードで取得した要素には存在しず、代わりにFocusが存在している。逆に、Win32、UIA、AA、UIAなどのアプリケーション系で取得した要素にはGlobal Mouse Clickは存在する。

各モードで使えるAction一覧は操作ステージのヘルプボタンを押せば確認できる。

f:id:zamdin:20200726110623p:plain

 

Ctrl + 〇  やHOMEなどの特殊キーの使用例

Key Glogbal Send Keys Global Send Key Events
SHIFT + {SHIFT}
CTRL ^ {CTRL}
ALT % {ALT}

例1."Blue Prism"と入力した後、"Ctrl + a"で全選択 ⇒ "Ctrl + c"でコピーする場合

f:id:zamdin:20200725212915p:plain

この時、Intervalに値が入っていると、下記のエラーとなる。 

f:id:zamdin:20200725213101p:plain

Internal : Failed to perform step 3 in Navigate Stage '検索ワード入力' on page 'Test' - Special characters (~{}+^%) are not supported in SendKeys if an interval value is provided. Separate calls can be used to send control characters.

Interval:1文字1文字を入力する間の間隔(秒数)

実際の手打ちのスピードを想定してIntervalを設定したい場合は、Global Send Keysを2つに分けるとうまくいく。

f:id:zamdin:20200725220612p:plain

f:id:zamdin:20200725220629p:plain

f:id:zamdin:20200725220647p:plain

Glogbal Send Keys "Blue Prism^a^c"
Global Send Key Events "<{SHIFT}b>{SHIFT}lue <{SHIFT}p>{SHIFT}rism<{CTRL}ac>{CTRL}"
< キー押し込み
キーを離す

これを用いて、<{SHIFT}b>とすれば、Bと送信される。Global Send Key Eventsでは、大文字を直接打ち込んでも機能しない感じ。

同様に、Ctrl + a ⇒ Ctrl + c は、<{CTRL}ac>{CTRL}で表される。

例2.Shiftの押しっぱなし

Glogbal Send Keys "+(blue prism)"
Global Send Key Events "<{SHIFT}blue prism>{SHIFT}"

例3.入力している文字を頭から20文字削除

Glogbal Send Keys "{HOME}{DELETE 20}"

Global Send Key Eventsで20回指定する方法は不明。。