Powershellかわいいかも!!!
たぶんアレな書き方してるような気がするんですが。
なんかこう、VBSみたい!!!←
コマンドプロンプトは絶対に覚えたくなかったので
いろいろちょうどいいです。
さてさて、いろいろ試してみる予定です。
課題プログラムということで電卓操作です。
ぐぐっても知りたいソースがひっかからなかったので
自分でかくはめに。。。
拡張子が「.ps1」ファイルを作ってソースをコピペ。
#.ps1ファイルと同じフォルダにUiautomationフォルダを作ってdll格納してね! $path = Split-Path -parent $MyInvocation.MyCommand.Path $path = $path + "\UIAutomation\UIAutomation.dll" Import-Module $path #赤枠非表示にしたいときはfalse [UIAutomation.Preferences]::Highlight = $true try{ $win = Get-UiaWindow -Name '電卓' }catch{ echo "電卓開いてない" calc $win = Get-UiaWindow -Name '電卓' } #クリアしとく $Clearbtn = $win |Get-UiaButton -Name 'クリア' $clearbtn.invoke() |Out-Null $addBtn = $win |Get-UiaButton -Name 'プラス' for($i=1;$i -lt 10;$i++){ $btn = $win | Get-UiaButton -name $i $btn.Invoke() |Out-Null $addBtn.invoke() |Out-Null sleep -m 70 } $disp = $win |Get-Uiatext -AutomationId 'CalculatorResults' #なぜか下記だと取得できない! #$dispane = $disp |Get-UiaPane -AutomationId 'textContainer' -Class 'ScrollViewer' $output = $disp|Get-UiaControlFirstChild|Get-UiaControlFirstChild|Get-UiaTextRangeText echo $output.replace(",","")
Powershellを実行するためのセキュリティポリシーと
UIautomationのモジュール読み込みはほかでぐぐってね←
使い方はともかくTry Catchつかえるんですなー。
JAVAで習ったのをちょっとだけおぼえてます。
実はなにがしんどかったって、計算結果の表示でした。
正確には今でもよくわかってません。
#なぜか下記だと取得できない! #$dispane = $disp |Get-UiaPane -AutomationId 'textContainer' -Class 'ScrollViewer' $output = $disp|Get-UiaControlFirstChild|Get-UiaControlFirstChild|Get-UiaTextRangeText
ここの部分ですね。
なぜかコメアウトしてるほうじゃエラーでるんですよ!!
しょうがないので、子要素ひっぱる形に。
とりあえず動いたのでよし!
ループの練習がてら1~9までを足す仕様。
見ての通り二けた以上に非対応
そのへん含めてここからいろいろ作っていきます!