~UI Automationって動くの?その2~ UI Automation with PowerShell 奮戦記 2日目

UI Automation*1で遊ぼう!

むむ、タブが出てこなかった。

今回、Windows 10 Home Editionを使用しているのですがその関係でしょうか?
とりあえずタブは操作出来ないことがあることを考慮します。
では、「コンピュータ名」のとこの画面を直接表示してみましょう。

f:id:amon52280:20181203235718p:plain
システムのプロパティ(コンピュータ名)

システムのプロパティ画面(コンピュータ名)の構成を表示してみましょう。
PowerShell ISEで実行してみる。

# UI Automation を組み込む
Add-Type -AssemblyName UIAutomationClient
Add-Type -AssemblyName UIAutomationTypes

# システムのプロパティ(コンピュータ名)を表示
SystemPropertiesComputerName.exe

# ルートエレメント
$re = [System.Windows.Automation.AutomationElement]::RootElement

$subtree = [System.Windows.Automation.TreeScope]::Subtree
$condition_true = [System.Windows.Automation.Condition]::TrueCondition

# システムのプロパティ画面(コンピュータ名)の構成
$syse = $re.FindAll($subtree,$condition_true) | ?{($_.current.name -match "システムのプロパティ")}
$syse | %{$_.FindAll($subtree,$condition_true)} | %{$_.current} | select name

実行結果

Name
 ----
システムのプロパティ                                                 
コンピューター名                                                   
コンピューターの説明(D):                                             
                                                           
例: "キッチンのコンピューター"、"仕事用コンピューター"                             
フル コンピューター名:                                               
DESKTOP-CSQKB17                                            
ワークグループ:                                                   
WORKGROUP                                                  
ドメインまたはワークグループに参加するためのウィザードを使用するには [ネットワーク ID] をクリックしてください。
ネットワーク ID(N)...                                            
このコンピューターの名前を変更するには、[変更] をクリックしてください。                      
変更(C)...                                                   
                                                           
                                                           
次の情報は、このコンピューターをネットワーク上で識別するために使われます。                      
OK                                                         
キャンセル                                                      
適用(A)                                                      

「コンピュータ名」のとこの画面構成の表示が出来ました。

*1:ここでのUI AutomationはSystem.Windows.Automationのことです