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

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

Событие смена активного окна в винде [D7, WinXP]


312kbps ©   (2008-04-17 12:00:00) 

Уважаемые профессионалы.
Подскажите пожалйста мне, как в моей программе отследить смену активного окна в виндовс, типа какого события в моей програме !?

Спасибо !


DVM   (2008-04-18 10:57:00) [1]

Можно и без хуков обойтись.


312kbps   (2008-04-17 18:00:00) [2]

WH_SHELL


312kbps   (2008-04-17 15:31:00) [3]

блин, не нашел я в справке, может не умею пользоваться, а может и нету у меня этого в справке (((
подскажите как она называется !?
пожалуйста )


Palladin   (2008-04-17 14:13:00) [4]

в справке все виды ловушек перечисленны и достаточно подробно описаны


312kbps   (2008-04-17 14:05:00) [5]

я знаю что надо использовать хук
SetWindowsHookEx

я не знаю как будет называться эта ловушка, тип ловушки
idHook - !?


Palladin   (2008-04-17 12:52:00) [6]

профессионалы... слово то какое...  :)
а с чего вдруг твоя программа должна уведомлятся о том, что активное окно виндовс сменилось? она только о своем активировании/деактивировании будет знать. а что бы следить за телодвижениями пользователя с окнами, нужно будет такую серьезную штуку сделать, как хук (hooks) реализовать. страшно? а может не надо? у меня ощущение что ты все равно ничего не поймешь, хотя может кто сердобольный даст тебе код, но ты все равно его тупо скопируешь и вставишь, а смысл в этом какой?... а никакого... а вот подсказку куда копать я тебе уже сделал... копай...


<>   (2008-04-17 12:49:00) [7]

Может быть вот так:


VAR A:HWND;

procedure TForm1.Timer1Timer(Sender: TObject);
VAR H:HWND;
begin
H:= GetForegroundWindow();
IF A<> H THEN  Application.Title:=IntToStr(H);
A:=H;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 A:=GetForegroundWindow();
end;


Наверх

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