Я работаю над проектом, в котором я хочу, чтобы моя программа была уведомлена, когда Internet Explorer получает фокус или при навигации по вкладкам. Чтобы было понятнее, когда экземпляр IE получает фокус или пользователь выбирает другую вкладку, я хочу, чтобы моя программа была уведомлена.
Для этого я использовал AutomationFocusChangedEventHandler
вот так:
AutomationFocusChangedEventHandler focusHandler;
private void StartListening()
{
focusHandler = new AutomationFocusChangedEventHandler(OnFocusChanged);
Automation.AddAutomationFocusChangedEventHandler(focusHandler);
}
private void OnFocusChanged(object src, AutomationFocusChangedEventArgs e)
{
AutomationElement ae = AutomationElement.FocusedElement;
if (ae.Current.ClassName == "Internet Explorer_Server")
{
//do something here
}
}
Хорошо работает, когда я нажимаю на разные экземпляры IE, но при взаимодействии с вкладками, с некоторыми этих вкладок, onFocusChanged
не срабатывает. С некоторыми вкладками, он работает нормально, но для других - нет (он не обнаруживает изменение вкладки для некоторых вкладок). Зачем? Я что-то упустил?