В Windows XP, как мне перечислить все окна, отображаемые системой (C #) - PullRequest
0 голосов
/ 06 января 2009

Я хотел бы получить список (или массив или что-то еще) всех видимых (включая свернутых) окон.

Я нашел 2 похожих вопроса, которые не вполне дают мне то, что я ищу:
- Определить, какие окна идут в списке alt-tab
- список окон в сеансе другого пользователя

Спасибо.

Ответы [ 3 ]

2 голосов
/ 06 января 2009

Я думаю, что запись в блоге Раймонда Чена, на которую указывает первая ссылка, дает вам представление о том, куда вы хотите пойти. По сути, вы вызываете EnumWindows и затем применяете этот алгоритм, за исключением того, что вы принимаете к сведению каждый видимый дескриптор окна.

Вопрос немного расплывчатый, какова цель здесь (может быть, лучший способ дать больше информации).

1 голос
/ 06 января 2009

Как насчет этого, чтобы получить список процессов, которые войдут в список alt-tab. (Запущенные процессы, содержащие окно):

using System.Diagnostics.Process; 

List<Process> plist = new List<Process>();            

foreach (Process p in Process.GetProcesses())
{
 string title = p.MainWindowTitle;
 if (!String.IsNullOrEmpty(title))
 {
     plist.Add(p);
 }
}
0 голосов
/ 06 января 2009

Просто используйте EW () api (FAQ по win32)

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