• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

OM Blog

Digital Artist Hacks!

  • Blog
    • 3DCG制作講座
    • 映像制作講座
  • Wiki
  • About
  • Contact
    • 3DCGデザイナー他 外部スタッフ募集
現在の場所:ホーム / PowerShell / PowerShellでUI Automationを使用する方法

PowerShellでUI Automationを使用する方法

08/15/2016 By Ochiai Mitsuo Updated: 09/04/2016 コメントを書く

PowerShellを使用してWindowsのUIを自動制御する方法のまとめです。本投稿ではソフトウェア、アプリのテスト、自動評価を目的としていません。デザイナーが楽をする為にUI Automationを活用する方法を模索します。 * もっと良い方法があったら教えてください。


準備

PowerShellでUI Automationを使用するには「UI Automation PowerShell Extensions」というUI AutomationのPowerShell用ラッパーを用います。
下記URLから最新バージョンをダウンロードします。2016年8月15日の時点では「UIAutomation.0.8.7B3.NET35.zip」が最新版のようです。

//uiautomation.codeplex.com/

PowerShellにモジュールを読み込む

UI Automation PowerShell Extensionsをダウンロードし解凍するとたくさんのファイルが入っています。その中にある「UIAutomation.dll」をPowerShellに読み込みます。
1行目におまじないを書きます。下記はデスクトップに解凍したフォルダ内のファイルを読み込んだ例です。読み込み先は変更してください。

PowerShell
1
Import-Module 'C:\Users\PC-USER\Desktop\UIAutomation.0.8.7B3.NET35\UIAutomation.dll'

Import-Moduleのエイリアスを使用するなら次のように書きます。

PowerShell
1
ipmo 'C:\Users\PC-USER\Desktop\UIAutomation.0.8.7B3.NET35\UIAutomation.dll'

これでPowerShellからUI Automationを使用する準備が整いました。
あとは付属の「UIAutomationSpy.exe」を用いて自動制御したいUIの情報を探っていきます。exeファイルの実行等が制限されている場合は、Inspect.exeやUiSpy.exe等、Windows SDKに付属するツールを使用してオブジェクトのClassName、Nameを探ります。

UI Automationのコマンドを用いてオブジェクトのName、Classを探る方法

UIAutomationSpy.exeやInspect.exeのツールが使用できない環境の場合、UI AutomationのRead関連のコマンドレットから探ることができます。
使用頻度の高いコマンドレットをメモしておきます。

Comandlet Comment
Read-UiaControlName オブジェクト名を読み取る
Read-UiaControlClass オブジェクトのクラス名を読み取る

ワイルドカードにすることで起動中のウィンドウのオブジェクト名、クラス名を読み取ることができます。

起動中ソフトウェアのオブジェクト名を読み取る方法

PowerShell
1
2
Import-Module 'C:\Users\PC-USER\Desktop\UIAutomation.0.8.7B3.NET35\UIAutomation.dll'
Get-UIAWindow -AutomationID * | Read-UIAControlName

実行結果

Windows PowerShell ISEとメモ帳を起動していた場合を想定

PowerShell
1
2
Windows PowerShell ISE メイン ウィンドウ
無題 - メモ帳

起動中ソフトウェアのオブジェクトクラス名を読み取る方法

PowerShell
1
2
Import-Module 'C:\Users\PC-USER\Desktop\UIAutomation.0.8.7B3.NET35\UIAutomation.dll'
Get-UIAWindow -AutomationID * | Read-UiaControlClass

実行結果

Windows PowerShell ISEとメモ帳を起動していた場合を想定


PowerShell
1
2
Shell_TrayWnd
Notepad

Reference

  • //softwaretestingusingpowershell.wordpress.com

カテゴリPowerShell

関連コンテンツ



Reader Interactions

コメントを残すコメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

最初のサイドバー

[PR] CG専門講師の初心者向けAfter Effects本

OM Blog Topics

  • After Effectsで動画データをループする方法
  • 台湾の通販で使える中国語キーワード
  • 台湾の購入代行サービス まとめ
  • CGソフトウェア 学習トレーニングサイト
  • Autodesk 3dsMax プラグインリスト
  • Adobe Photoshop プラグインリスト
  • 私のパソコンスペック
  • Windows ムービー メーカー提供終了。無料の代替えソフトは「フォト」です。
  • Photoshopのテキストレイヤー名の自動更新設定を復元する方法
  • PSDデータが開けない場合の対処方法

RSS OM Wiki Topics

  • OM Wiki
  • Formatting Syntax - ↷ 移動操作に合わせてリンクを書き換えました。
  • Asciidoc - [テーブル]
  • ImageMagick - [ダウンロード & インストール]
  • アニメーションの作り方

アーカイブ

Copyright © 2026

  • プライバシーポリシー