ぴぐノート

Good code is its own best documentation.

PowerShell

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

投稿日:2016年10月19日 更新日:

前回の記事で、UIAutomationのDL、実行ポリシーの変更が完了しました。
今回はUIAutomationを使って電卓を起動させてみましょう。

私が活用した場面としては電卓ではなく、開発した映像再生アプリケーションの負荷テストでした。
24時間以上の連続操作(パスワードの入力・映像再生・動画ファイル出力の繰り返し)を行ってもリークや速度の低下が発生しないかどうかの確認です。

これ以上にも操作の自動化ができれば楽になる部分などいくつか見つかりそうです。
さて、早速スクリプトから電卓を起動してみます。

スクリプトを書こう!

UIAutomationの有効化

まずはスクリプトを置くフォルダーを作成しておきましょう。

  1. 「D:\WPS」に「Script」フォルダーを作成します。
  2. 「Script」フォルダーにテキストドキュメントを作成します。
    テキストドキュメントの名前は「UIAutomationCalc.ps1」としておきましょう。
    この拡張子「.ps1」がPowerShellのスクリプトファイルです。
    uiautomation_004

では、編集していきましょう。
ダブルクリックでメモ帳が起動します。

UIAutomationのコマンドレット(=命令)が実行できるようにUIAutomationをインポートします。

  1. [ Import-Module ]コマンドレットでUIAutomation.dllをインポートする。
  2. [ Start-Process ]コマンドレットで電卓を起動する。
    uiautomation_005
  3. さて、とりあえずこれで実行してみましょう。
    Windows PowerShell ISEを管理者権限で実行し、作業フォルダーに移動。スクリプトを実行してみます。
    uiautomation_006
    どうでしょうか。
    電卓が起動しましたか?

スクリプトの内容について理解しよう!

さて、とりあえずスクリプト上からアプリケーションを起動させることができました。
スクリプトはたったの2行ですが、簡単に内容を確認しておきましょう。

  1. まず1行目、これはなんとなく理解できる方が多いのではないでしょうか。
    コマンドレット(=命令語)、[ Import-Module ]でUIAutomation.dllをインポートします。
    サンプルでは絶対パスで記入していますが、相対パスでも指定可能です。

    ・Import-Module .\Module\UIAutomation\UIAutomation.dllでもOK!

  2. 続いて2行目、これはコマンドレット、[ Start-Process ]で指定したプロセスを起動させます。
    [ -PassThru ]パラメータは、ざっくりいうと「戻り値を持たないコマンドレットであっても、オブジェクトを返すように指定する」といった意味になります。
    このオブジェクトは[ $process ]変数に格納しておきます。
    簡単なサンプルではそこまで生きてくるパラメータではありませんが、意味は理解しておくといいでしょう。

    ここで[ calc ]と指定しているのは電卓のプロセス名ですね。
    [ notepad ]と指定すればメモ帳を開くことも可能です。
    また絶対パスを指定して任意の実行ファイルを動かすことも可能です。

まとめ

こうしていると初めてプログラムを勉強したときを思い出しますね。
内容はとても簡単ですし、一度覚えたら数分で作成できますが、初めては変な疲労感があります。

さて、次の記事ではスクリプトで簡単な計算を制御文を使って実行させてみましょう。

// ——– ——– ——– ——– ——– ——– ——– ——–
UIAutomationでアプリケーション操作を自動化しよう! その1
UIAutomationでアプリケーション操作を自動化しよう! その2
UIAutomationでアプリケーション操作を自動化しよう! その3
UIAutomationでアプリケーション操作を自動化しよう! その4
// ——– ——– ——– ——– ——– ——– ——– ——–

スポンサーリンク

スポンサーリンク

-PowerShell
-

執筆者:

関連記事

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

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

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

ここ数日PowerShellのライブラリ、UIAutomationを使ってアプリケーション操作自動化について記事を作成しました。 ボタンばかりのアプリケーションであれば十分ですが、実際には右クリックし …

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

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

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

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