Получить список текущих окон и выделить одно из них в .Net - PullRequest
3 голосов
/ 30 августа 2008

Не прибегая к PInvoke, есть ли способ в .net узнать, какие окна открыты? Это немного отличается от вопроса о том, какие приложения работают в памяти. Например, Firefox может быть запущен, но может иметь более одного окна. По сути, я просто хочу быть знакомым с той же информацией, что и панель задач (и alt-tab?).

Кроме того, если у меня есть ссылка на окно, есть ли способ программно придать ему фокус?

Есть ли способ сделать это с помощью управляемого кода?

Ответы [ 3 ]

1 голос
/ 30 августа 2008

Вы можете проверить новые UI Automation вещи в .NET 3.5. Предполагается, что он маскирует множество вещей из PInovke и работает с веб-приложениями и приложениями WPF.

Я еще не использовал его, поэтому у меня нет более конкретного места, чтобы направить вас, но это может соответствовать вашим требованиям.

1 голос
/ 02 сентября 2008

Проверьте этот проект LGPL. Я знаю, что это может установить передний план для окна. В противном случае аку правильно. Скорее всего, потребуется несколько вызовов pinvoke.

http://mwinapi.sourceforge.net/

Если вам нужна информация об использовании pinvoke:

http://www.pinvoke.net/

0 голосов
/ 30 августа 2008

Боюсь, нет способа сделать это без PInvoke. Чтобы сфокусировать внимание на каком-либо окне, вы должны вызвать функцию SetForegroundWindow, подробнее см. эту статью.

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