ぴぐノート

Good code is its own best documentation.

PowerShell

【PowerShell/UIAutomation】アプリケーション操作のTips!

投稿日:

ここ数日PowerShellのライブラリ、UIAutomationを使ってアプリケーション操作自動化について記事を作成しました。
ボタンばかりのアプリケーションであれば十分ですが、実際には右クリックしてコンテキストメニューを選択したり、パスワードやファイルパス指定のため文字列の入力と、クリック以外の動作をさせたい場合も出てきます。

またデフォルトの状態ではUIAutomationによってアプリケーションに赤枠が表示されたりしますので、解決方法についてまとめてみます。

UIAutomationの赤枠を非表示にする。

電卓での実験でもそうでしたが、デフォルトの状態ではスクリプトの実行中にアプリケーションに赤色の枠が表示されています。
フォーカスがどこにあるかなどを知りたい場合などは役に立つかもしれませんが、普段は煩わしいのではないでしょうか。

一文で非表示にすることができるので、インポート後あたりに次の文を追加すると非表示にすることができます。

アプリケーションに文字を入力する

自動化したいアプリケーションがパスワードの入力を要求したり、特定のファイルを開きたい( = フルパスを指定したい )場合など文字列の入力が必要になります。
いくつか方法がありますが、単純な方法では以下の文が一番使いやすい気がします。

他にもSendKeyやSendWaitなどで入力することも可能ですが、私が実際に使用したテストではアプリケーションのダイアログにエラーが発生してしまいました。
上記に変更したところ改善できたので、SendKeyやSendWaitを使っていて問題があった場合にはKeyborad.TypeTextに変更してみてはどうでしょうか。

スクリプトにコメントを挿入する。

普段のプログラミングと同様にスクリプトにもコメントを挿入したいときは多いはずです。
自分だけでなく、他の人も見るのであれば必須とすら言えます。
コメントは「#」の後に記述します。

アプリケーションの右クリックメニューを操作する

正直もっといい方法がある気がするのですが…。
UIAutomationSpyでは右クリックメニューのAutomationId/Nameしか情報を得られないので少し面倒です。
一部分ではなく、メモ帳を例にスクリプトを記述します。
コピー処理は省いているので何か簡単に文字列をコピーして動かしてみてくださいネ。

まとめ

UIAutomationの基本的な使い方などはブログなどでもよく紹介されていますが、いざ何かやってみようと思うとうまく情報を探せないことも多いです。
実際にいろいろ使ってみて理解を深めることが大切と実感します。

何かチャンスがあればPowerShellでできないか、と少しでも頭をよぎるようになればいいですよね。

スポンサーリンク

スポンサーリンク

-PowerShell
-

執筆者:

関連記事

UIAutomationでアプリケーション操作を自動化しよう! その1

技術者となって一番多く、そして面倒な作業はテストではないでしょうか。 単体テスト、システムテスト、結合テストとマイルストーンに従って、ちょくちょくテストしないといけません。 自分ひとりで開発していると …

UIAutomationでアプリケーション操作を自動化しよう! その2

前回の記事で、UIAutomationのDL、実行ポリシーの変更が完了しました。 今回はUIAutomationを使って電卓を起動させてみましょう。 私が活用した場面としては電卓ではなく、開発した映像 …

UIAutomationでアプリケーション操作を自動化しよう! その4

昨日までの記事でスクリプトから電卓のボタンを押下させ、計算させることができました。 この記事でループを作成し、耐久テストのように延々と計算させ続ける処理に変更してみましょう。 ボタンを押下させる方法な …

UIAutomationでアプリケーション操作を自動化しよう! その3

さて昨日の記事でスクリプトから電卓を起動させることができました。 今回の記事ではUIAutomationSpyというツールを使って電卓の情報を取得し、スクリプトから電卓に入力させるところまですすめまし …