Страница 1 из 1

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

СообщениеДобавлено: 24.10.2012 20:15:02
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
...

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

Люди добрые, куда еще рыть?

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

СообщениеДобавлено: 24.10.2012 20:37:26
Mr.Smart
Предположение.
Если проверять является ли окно дочерним окном рабочего стола т.е. HWND родителя равно 0?

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

СообщениеДобавлено: 12.12.2012 17:24:12
PapaNT
Решено.
Все в моем было правильно - глюк был в даааааавно неперегруженной Win'7