Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как Определить активное окно, но хитро - позже клика? [D2005, XP]


Vlad Oshin ©   (2008-10-17 12:53:00) 

вот так делаю
 case MSG.message of
   WM_LBUTTONDOWN,WM_RBUTTONDOWN:
   begin
     GetWindowText(GetForegroundWindow,@PA,255);
     //LastWindow:=strpas(pansichar(@PA));
     WriteToLog('Верхнее окно текст'+strpas(pansichar(@PA)));
     GetClassName(msg.hwnd,@PA,255);
     s:='Клик по окну класса:'+strpas(pansichar(@PA));
     GetWindowText(MSG.hwnd,@PA,255);
     s:=s+'(текст:'+strpas(pansichar(@PA))+')<BR>';
     hwnd:=MSG.hwnd;
     while (GetParent(hwnd)<>0) do begin
        hwnd:=GetParent(hwnd);
        if GetWindowTextLength(hwnd)>1
         then begin
            GetClassName(hwnd,@PA,255);
            s:=s+' подокно класса:'+strpas(pansichar(@PA));
            GetWindowText(hwnd,@PA,255);
            s:=s+'(текст:'+strpas(pansichar(@PA))+')<BR>';
         end;
     end;
//       GetWindowModuleFileName(msg.hwnd,@PA,255);
//       s:=s+' '+ExtractFileName(strpas(pansichar(@PA)));
     WriteToLog(s);

но,
Когда происходит клик, я определяю верхнее окно, а там срабатывает механизм какой-то, и верхним становится другое.
Например, щелкаем по кнопке на form1, которая вызывает form2.show.

Все правильно фиксируем,
- Клик на кнопка1, form1

А еще неплохо бы как-то зафиксировать какое после клика активное окно стало?


Vlad Oshin   (2008-10-17 13:29:00) [1]


> заранее не знаешь, что у тебя по кнопке вылезти должно?

нет.
Динамически меняется


> а если оно станет активным через пару минут, после долгого
> мурыженья данных и сложных матрасчетов?

вот и именно
А надо бы..


Правильный$Вася   (2008-10-17 12:58:00) [2]


> зафиксировать какое после клика активное окно стало?

а если оно станет активным через пару минут, после долгого мурыженья данных и сложных матрасчетов?
какие-то у тебя странные задачи
ты что, заранее не знаешь, что у тебя по кнопке вылезти должно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо