AccEvent.exe と同じように、C# プログラムで System.Windows.Automation を使用して、FocusChangedEvent の Name プロパティを報告したいと考えています。
FocusChangedEvent が発生するたびに送信者の名前を表示する単純なコンソール アプリがあります。
Automation.AddAutomationFocusChangedEventHandler((sender, e) => {
AutomationElement element = sender as AutomationElement;
if (element != null)
{
Console.WriteLine(element.Current.Name);
}
});
これはほとんど期待どおりに機能します。ウィンドウとウィンドウ内の要素の間でフォーカスを切り替えると、フォーカスされた要素の名前が表示されます。ただし、多くの要素では、Name プロパティは空の文字列 ("") を返します。
AccEvent.exe (UIA FocusEvent) で確認すると、送信者名は同じ要素に対して正常に表示されます。
これをトラブルシューティングする方法は? 任意の方向をいただければ幸いです。