Пример TrackFocus

Обновлен: Ноябрь 2007

В этом примере отслеживается фокус ввода на рабочем столе, и сведения об изменении фокуса отображаются с помощью Модель автоматизации пользовательского интерфейса Майкрософт. Это простое консольное приложение, которое можно взять за основу для приложения, использующего модель автоматизации пользовательского интерфейса для отслеживания событий на рабочем столе.

Программа сообщает об изменении фокуса ввода. Если фокус перемещается в окно другого приложения, выводится заголовок этого окна. Если фокус перемещается в пределах окна приложения, выводятся тип и имя читаемого элемента управления.

Чтобы получать информацию о перемещении фокуса между приложениями, программа хранит список идентификаторов среды выполнения для всех открытых окон верхнего уровня. В ответ на каждое событие изменения фокуса производится поиск родительского окна с помощью объекта TreeWalker, и найденное окно сравнивается с последним окном, имевшим фокус.

Программа обрабатывает три типа событий:

  • Изменение структуры. Единственным событием, представляющим интерес, является добавление окна верхнего уровня.

  • Изменение фокуса. Регистрируются все события.

  • Закрытие окна. При закрытии окна верхнего уровня идентификатор среды выполнения удаляется из списка.

Для упрощения программы кэширование не производится. В полноценном приложении, скорее всего, будут кэшироваться все непосредственные потомки окна приложения сразу же после перехода фокуса в это окно.

В этом примере демонстрируется конкретная функциональная возможность Windows Presentation Foundation (WPF), и поэтому рекомендации по разработке приложений не соблюдаются. Более полное рассмотрение Windows Presentation Foundation (WPF) и рекомендации по тактике разработки приложений Microsoft .NET Framework см. в следующих источниках:

Специальные возможности: Рекомендации по специальным возможностям

Безопасность: Безопасность Windows Presentation Foundation

Локализация: Общие сведения о глобализации и локализации WPF

Download sample

Построение примера

  • Установите пакет средств разработки программного обеспечения для Windows и откройте окно командной строки среды его построения. В меню "Пуск" выделите пункты "Все программы", "Пакет SDK для Microsoft Windows", а затем "Оболочки CMD".

  • Загрузите образец, как правило из документации пакета SDK, на жесткий диск.

  • Чтобы построить образец из окна командной строки среды построения, перейдите в исходный каталог образца. В командной строке введите MSBUILD.

  • Чтобы построить образец в Microsoft Visual Studio, загрузите решение образца или файл проекта и нажмите сочетание клавиш CTRL + SHIFT + B.

Выполнение примера

  • Для запуска скомпилированного образца в окне командной строки среды построения, выполните EXE-файл в папке Bin\Debug или Bin\Release, содержащихся в папке кода источника образца.

  • Для запуска скомпилированного образца с помощью отладки в Visual Studio, нажмите клавишу F5.