Список выполняемых приложений в Windows

Обсуждение идей, архитектуры и проектов (как существующих, так и разрабатываемых).

Модераторы: Рождённый_в_СССР, Модераторы

Ответить
PapaNT
постоялец
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Список выполняемых приложений в Windows

Сообщение PapaNT »

Уважаемые коллеги, доброго времени суток!

Столкнулся с интересной задачей. Нужно обработать список выполняемых приложений. Казалось бы, а чего проще, но...
Обрабатывая HWND списка приложений через сито:

Код: Выделить всё

Procedure Some_Proc(WD : HWND);
begin
  if IsWindow(WD) Then // Это окно
    if IsWindowVisible(WD) Then // Это видимое окно
      if IsWindowEnabled(WD) Then // Это окно разрешенное для ввода данных
...

я получаю на выходе список окон несколько больший, чем видимый пользователю по Alt+Tab.
Дополнительный фильтр из

Код: Выделить всё

if (GetWindowLong(WD,GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0 Then
...

не дает желаемого результата... Часть "левых" окон таки прорывается...

Люди добрые, куда еще рыть?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Предположение.
Если проверять является ли окно дочерним окном рабочего стола т.е. HWND родителя равно 0?
PapaNT
постоялец
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Сообщение PapaNT »

Решено.
Все в моем было правильно - глюк был в даааааавно неперегруженной Win'7
Ответить