Wpfアプリの画面でセレクタを[規定値]で取得したい

以下の原因を突き止めるためにアドバイスがあれば、いただきたいです。
●背景
そもそもWPFアプリ画面の部品を、Studioでセレクタを取得する際に、UIフレームワークが[規定値]で取得できていたものが、できなくなりました。[規定値]でできるようにしたいと思っています。
●現象
VMware WorkStation Player15.5上でWPFアプリの画面からUIExplorerでセレクタを取得しようとしています。一つのVMイメージを複製して二つの同じ環境で試したところが、それぞれの環境で以下のようにふるまいが異なる、という現象が起きています。何が原因かわかりません。
片方の環境では、UIフレームワークを[規定値]のままでWPFアプリ画面上の各部品を識別して取得できます。
しかし、もう一方の環境では、UIフレームワークが[規定値]のままだとWPFアプリ画面の全体のウィンドウの単位でしかセレクタを取得できません。UIフレームワークを[UIA]にすれば、こちらの環境でもWPFアプリ画面の各部品を識別して取得できます。
Windows10のバージョン(1903)も同じ、WPFアプリも同じ、WindowsUpdateの適用状況も同じです。
●以下は既に試したこと(解決には至っておりません)
Webに情報があった oleacc.dll の再登録はトライ済、以下のレジストリキーの内容は、[規定値]で取得できる環境とできない環境との間で同じでした。
HKEY_CLASSES_ROOT\Interface{618736E0-3C3D-11CF-810C-00AA00389B71}
HKEY_CLASSES_ROOT\WOW6432Node\Interface{618736E0-3C3D-11CF-810C-00AA00389B71}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface{618736E0-3C3D-11CF-810C-00AA00389B71}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface{618736E0-3C3D-11CF-810C-00AA00389B71}
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\Interface{618736E0-3C3D-11CF-810C-00AA00389B71}

本件、質問を取り下げます。
原因は、仮想環境に構築した環境にありそうです。
問題が発生していた仮想環境のOSとは別の4つの環境で確認したところ、4つすべての環境でUIフレームワークが[規定値]のままで対象のWPFアプリの画面部品を取得できました。
2台のリアル環境のWindow10と2つのVM仮想環境上のWindows10の上で、同じWPFアプリ画面を使って、UiPathで部品情報をセレクタで取得できるか確認してみました。その結果[規定値]で期待通りにセレクタを取得できたので、これはUiPathの問題ではなく、私が構築した環境が壊れていたのだと思います。ですので、環境をクリーンインストールで作成しなおします。
お騒がせしました。

追伸です。
原因がわかりました。
以前、以下の対処をしていたのですが、それが原因でした。
RPAを実行している最中に [タグ付けされていない文書の読み上げ] ダイアログが表示されるのを抑止するために Acrobat Reader の読み上げ機能を無効化していました。具体的には、以下のファイルの拡張子を api から bak に修正していました。
フォルダ: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins
ファイル: Accessibility.api → Accessibility.bak
ファイル: ReadOutLoud.api → ReadOutLoud.bak
これを、拡張子を元通りに戻したら、[規定値] で画面要素を正常に取得できるようになりました。
#再現する環境としない環境を比較したら、上記の部分は両者で異なっていました。

1 Like