Конференция "Основная" » Событие смена активного окна в винде [D7, WinXP]
 
  • 312kbps (17.04.08 12:00) [0]
    Уважаемые профессионалы.
    Подскажите пожалйста мне, как в моей программе отследить смену активного окна в виндовс, типа какого события в моей програме !?

    Спасибо !
  • <> (17.04.08 12:49) [1]
    Может быть вот так:


    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;

  • Palladin © (17.04.08 12:52) [2]
    профессионалы... слово то какое...  :)
    а с чего вдруг твоя программа должна уведомлятся о том, что активное окно виндовс сменилось? она только о своем активировании/деактивировании будет знать. а что бы следить за телодвижениями пользователя с окнами, нужно будет такую серьезную штуку сделать, как хук (hooks) реализовать. страшно? а может не надо? у меня ощущение что ты все равно ничего не поймешь, хотя может кто сердобольный даст тебе код, но ты все равно его тупо скопируешь и вставишь, а смысл в этом какой?... а никакого... а вот подсказку куда копать я тебе уже сделал... копай...
  • 312kbps (17.04.08 14:05) [3]
    я знаю что надо использовать хук
    SetWindowsHookEx

    я не знаю как будет называться эта ловушка, тип ловушки
    idHook - !?
  • Palladin © (17.04.08 14:13) [4]
    в справке все виды ловушек перечисленны и достаточно подробно описаны
  • 312kbps (17.04.08 15:31) [5]
    блин, не нашел я в справке, может не умею пользоваться, а может и нету у меня этого в справке (((
    подскажите как она называется !?
    пожалуйста )
  • 312kbps (17.04.08 18:00) [6]
    WH_SHELL
  • DVM © (18.04.08 10:57) [7]
    Можно и без хуков обойтись.
 
Конференция "Основная" » Событие смена активного окна в винде [D7, WinXP]
Есть новые Нет новых   [134487   +1][b:0][p:0.001]