カテゴリ[PowerShellでRPA]では、UI AutomationをPowerShellで使えるようにしたライブラリ「UI Automation PowerShell Extensions」を利用して、画面の操作を自動化する方法を紹介しています。操作対象画面は、Windows10の「マウスのプロパティ」です。
■処理フロー
「コントロールパネル」を開く。
「マウスのプロパティ」開く。
[ポインター]タブをクリックする。
[デザイン(S)]コンボボックスの現在の選択内容を取得する。
[デザイン(S)]コンボボックスの選択肢(リスト要素)を取得する。
■スクリプト
【2020/5/31追記】
Microsoft365のWordで、印刷先プリンターを選択する処理を自動化しようとしたら、プリンターのリストがComboBoxのリストではなくてMenuのリストだったことで、Get-UiaListItemで手こずってしまった。下図の左側赤枠部分はComboBox、右側赤枠部分はMenu、コントロールが別物でした。
その結果、以下のようにスクリプトを組む必要がありました。
(1)ComboBoxをクリックしてMenuを表示する。
(2)リストの内容はMenuのリストとして取得する。
■処理フロー
「コントロールパネル」を開く。
「マウスのプロパティ」開く。
[ポインター]タブをクリックする。
[デザイン(S)]コンボボックスの現在の選択内容を取得する。
[デザイン(S)]コンボボックスの選択肢(リスト要素)を取得する。
■スクリプト
Import-Module C:\UIAutomation\UIAutomation.0.8.7B3.NET35\UIAutomation.dll [UIAutomation.Preferences]::Highlight=$false #「コントロールパネル」を開く。 Start-Process C:\Windows\System32\control.exe #「コントロールパネル」ウィンドウを取得する。 $ctlwndw = Get-UiaWindow -Name 'すべてのコントロール パネル項目' #「マウスのプロパティ」を開く。 $ctlwndw | Get-UiaHyperlink -AutomationId 'name' -Class 'ControlPanelLink' -Name 'マウス' | Invoke-UiaLinkLabelClick | Out-Null #ウィンドウ表示を待つために待つ。 Start-Sleep -s 2 #「マウスのプロパティ」ウィンドウを取得する。 $wndw = Get-UiaWindow -Name 'マウスのプロパティ' #[ポインター]タブをクリックする。 $wndw | Get-UiaTabItem -Name 'ポインター' | Invoke-UiaTabItemClick | Out-Null #[デザイン(S)]コンボボックスの現在の選択内容を取得する。 $wndw | Get-UiaComboBox -Name 'デザイン(S)' | Get-UiaComboBoxSelection | Read-UiaControlName #[デザイン(S)]コンボボックスの選択肢(リスト要素)を取得する。 $wndw | Get-UiaList -Name 'デザイン(S)' | Get-UiaListItem | Read-UiaControlName
【2020/5/31追記】
Microsoft365のWordで、印刷先プリンターを選択する処理を自動化しようとしたら、プリンターのリストがComboBoxのリストではなくてMenuのリストだったことで、Get-UiaListItemで手こずってしまった。下図の左側赤枠部分はComboBox、右側赤枠部分はMenu、コントロールが別物でした。
その結果、以下のようにスクリプトを組む必要がありました。
(1)ComboBoxをクリックしてMenuを表示する。
(2)リストの内容はMenuのリストとして取得する。
#ComboBoxをクリックしてMenuを表示する。 $wndw | Get-UiaComboBox -Name '使用するプリンター' | Invoke-UiaComboBoxExpand | Out-Null #Menuのリストを表示する。 $wndw | Get-UiaMenu -Name '使用するプリンター' | Get-UiaListItem | Read-UiaControlName #リストから[Adobe PDF]を選択する。 $wndw | Get-UiaListItem -Name 'Adobe PDF' | Invoke-UiaListItemClick | Out-Nullこの例では、リストから別のプリンター[Adobe PDF]を選択する処理も実装してみました。
コメント
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。