AutomationFocusChangedEventHandler не всегда срабатывает - PullRequest
1 голос
/ 01 сентября 2011

Я работаю над проектом, в котором я хочу, чтобы моя программа была уведомлена, когда 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 не срабатывает. С некоторыми вкладками, он работает нормально, но для других - нет (он не обнаруживает изменение вкладки для некоторых вкладок). Зачем? Я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...