6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PiP機能で実行した時のみ、Send Hot keyが効かなかった話

Posted at

むか~しむかし、UiPath Studio 19.10が出回っていた頃。

とある小さな村に住むryokoという者が、RPAツールのUiPathを使って、細々とワークフローを作って暮らしておった。

作られたワークフロー達はそれはもう大切に大切に育てられたおかげで、エラーも出さずによう働くようになり、実行ツールのUiPath robotに登録され、毎日、ryokoと楽しく暮らしておった。

そんなある日、とうとうryokoの住む村にも、Studio 20.10と、UiPath Assistantがやってきた。

ryokoはたいそう喜んだ。
UiPath robotから進化したUiPath Assistantには、PiP(ピクチャ イン ピクチャ)機能という、それはまぁとてつもなく、便利な機能があったからじゃ。

RPAっちゅーもんは、だいたいはwindowsの画面と操作を占領しちまう。
だが、UiPathのPiP機能は、Windouwsの中にもう1つWindowsが開いて、そん中でRPAを実行してくれる。
同じデスクトップ画面の中で、RPAと自分が別々の作業をしていられるというわけじゃ。

image.png

ryokoは19.10で作ったワークフロー達を全員デバック実行し、Assistantでも実行し、皆が元気に働く姿をその目でちゃぁんと確認した。

そしてとうとう、PiP機能で実行した時。恐ろしい事が起こったんじゃ…

PiP機能でも問題なく働くワークフロー達の中で一人だけ、『Send Hot Key』アクティビティを使っている子がおって、その子はExcelブックの各シート名を見て、使わないシートはAlt+hdsでシート削除をする仕事をしていた。
その子が何でか、PiP機能を使った時だけ、使わないシートを削除せんようになってしまったんじゃ。

ryokoは悩んだ。
なんせデバッグだと問題ない、Assistant実行も問題ない子じゃ。
原因がとんと掴めず、ただただPiP実行とデバック実行の間をおろおろとするばかりじゃった。

そんなことを何度か繰り返していたryokoだったが、ふと、アクティビティの待機時間を使えば、ちゃあんとキー入力出来ているかを見れるのではないかと思いついた。
デバック実行でもない限り、そりゃもう、つむじ風みたいに仕事をしちまう子だから、おちついて仕事の様子を確認するには、ryokoでも分かるよう、ゆっくりと入力してもらう必要があったんじゃ。

そこでryokoは、『Send hot key』アクティビティの実行前と、キー入力間それぞれに、限界ぎりぎりの1000ミリ秒を設定したワークフローにし、それをPiPで実行した。

image.png

実行前にシートが選択できているか、そしてキー入力間ではそれぞれのキーをちゃんと叩けているかが、これでryokoでも分かった。

Alt+hの時点でExcelはこんな感じでずらずらとショートカットが表示されるはずなんじゃが…
image.png

PiP実行した時だけ、Excelはシートを移動するだけで、Alt+hdsキーが入力されてないことが分かった。

だが、PiP実行した時だけキー入力されない理由が分からない。

ryokoはこれまたうんうんと悩み、『デバック実行とAssistant実行』と『PiP実行』で何が違うかを考え、そしてはたと思い当たった。

『今動かしている画面』が、2つある。
image.png

そう、PiP機能は『Windouwsの中にもう1つWindowsが開いて、そん中でRPAを実行してくれる。同じデスクトップ画面の中で、RPAと自分が別々の作業をしていられる』。

それに気づいたryokoは、慌てて『Send hot key』アクティビティのセレクター設定を覗き込んだ。
image.png

なんと驚いたことに、『何の要素に対して操作するか』を指定するセレクターが、なあんもなかったんじゃ。

セレクターが空白だと、今触っているアプリに向かってキーを入力する。

デバック実行やAssistant実行だと『今触っている(アクティブ)アプリ』は1つしかないので、Excelの『Select Range』アクティビティを使ってシートを選択した時にExcelが『今触っている』になるので、セレクタを設定しなくても何も問題なく働いてくれとった。
だが、PiP実行だとryokoが触っているアプリとRPAが触っているアプリ、2つある状態になる。

そんで、キー入力はryokoが触っているアプリの方に向かって入力されておった、と言うわけじゃ。

本当だったら、セレクターは面倒臭がらず、ちゃんと設定しておかねばならん。
さもないともしかしたら、偶然全く別のアプリのショートカットが動き、とんでもない騒動になるかもしれんしの。

ぞおっとするそんな騒動を思い浮かべたryokoは、冷や汗を流しつつ、セレクターにExcelを指定した。

こうして『Send hot key』アクティビティを使ったワークフローはPiP機能でも元気に仕事をするようになり、ryokoともっともっと、楽しく暮らすようになりましたとさ。
image.png

めでたしめでたし。

#…という昔話は、2019.xxまでの作り方(クラシックデザイン)で作った場合の話。
2010.4以降のStudioですと『Send hot key』アクティビティはクラシック扱い(モダンデザインだとデフォルト表示されない、古いアクティビティ)なので、代わりに登場した『Keyboard Short Cut』アクティビティ使うことになると思うのですが。

こちらは『アプリケーション/ブラウザーを使用』アクティビティ(『要素スコープ』アクティビティと似た感覚の新アクティビティ)とセットで使わざるをえないので、本件のような事態には陥らないかと思います( ー`дー´)キリッ
image.png

これにて本当に、めでたしめでたし。:hugging:

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?