前回の記事で、UIAutomationのDL、実行ポリシーの変更が完了しました。
今回はUIAutomationを使って電卓を起動させてみましょう。
私が活用した場面としては電卓ではなく、開発した映像再生アプリケーションの負荷テストでした。
24時間以上の連続操作(パスワードの入力・映像再生・動画ファイル出力の繰り返し)を行ってもリークや速度の低下が発生しないかどうかの確認です。
これ以上にも操作の自動化ができれば楽になる部分などいくつか見つかりそうです。
さて、早速スクリプトから電卓を起動してみます。
スクリプトを書こう!
UIAutomationの有効化
まずはスクリプトを置くフォルダーを作成しておきましょう。
- 「D:\WPS」に「Script」フォルダーを作成します。
- 「Script」フォルダーにテキストドキュメントを作成します。
テキストドキュメントの名前は「UIAutomationCalc.ps1」としておきましょう。
この拡張子「.ps1」がPowerShellのスクリプトファイルです。
では、編集していきましょう。
ダブルクリックでメモ帳が起動します。
UIAutomationのコマンドレット(=命令)が実行できるようにUIAutomationをインポートします。
- [ Import-Module ]コマンドレットでUIAutomation.dllをインポートする。
- [ Start-Process ]コマンドレットで電卓を起動する。
- さて、とりあえずこれで実行してみましょう。
Windows PowerShell ISEを管理者権限で実行し、作業フォルダーに移動。スクリプトを実行してみます。
どうでしょうか。
電卓が起動しましたか?
スクリプトの内容について理解しよう!
さて、とりあえずスクリプト上からアプリケーションを起動させることができました。
スクリプトはたったの2行ですが、簡単に内容を確認しておきましょう。
0 1 |
Import-Module D:\WPS\Modules\UIAutomation\UIAutomation.dll $process = Start-Process calc -PassThru |
- まず1行目、これはなんとなく理解できる方が多いのではないでしょうか。
コマンドレット(=命令語)、[ Import-Module ]でUIAutomation.dllをインポートします。
サンプルでは絶対パスで記入していますが、相対パスでも指定可能です。・Import-Module .\Module\UIAutomation\UIAutomation.dllでもOK!
- 続いて2行目、これはコマンドレット、[ Start-Process ]で指定したプロセスを起動させます。
[ -PassThru ]パラメータは、ざっくりいうと「戻り値を持たないコマンドレットであっても、オブジェクトを返すように指定する」といった意味になります。
このオブジェクトは[ $process ]変数に格納しておきます。
簡単なサンプルではそこまで生きてくるパラメータではありませんが、意味は理解しておくといいでしょう。ここで[ calc ]と指定しているのは電卓のプロセス名ですね。
[ notepad ]と指定すればメモ帳を開くことも可能です。
また絶対パスを指定して任意の実行ファイルを動かすことも可能です。
まとめ
こうしていると初めてプログラムを勉強したときを思い出しますね。
内容はとても簡単ですし、一度覚えたら数分で作成できますが、初めては変な疲労感があります。
さて、次の記事ではスクリプトで簡単な計算を制御文を使って実行させてみましょう。
// ——– ——– ——– ——– ——– ——– ——– ——–
UIAutomationでアプリケーション操作を自動化しよう! その1
UIAutomationでアプリケーション操作を自動化しよう! その2
UIAutomationでアプリケーション操作を自動化しよう! その3
UIAutomationでアプリケーション操作を自動化しよう! その4
// ——– ——– ——– ——– ——– ——– ——– ——–