Przechwycanie Komunikatów

0

Ostatnio ściągnąłem program, ale powykonaniu paru rzeczy zawiesza się, ale mniejsza o to.
Chcę sobie napisać program który przechwyci wszystkie komunikaty, nawet jeżeli są kierowane nie do mojej aplikacji...

1

Hook?

0

Już sobie poradziłem...
Ale mam inny problem, odnośnie komunikatów.

W OnDeactive formy dałem taki kod (znalazłem na forum 4p):

var
  hW : HWND;
begin
  hW := Application.Handle;
  SetForegroundWindow(hW);
end;

Czyli to ma działać tak, że jeżeli dezaktywuje okno, ma ono się aktywować i wyskoczyc na wierzchu. Niestety nie wyskakuje :( czemu?

0

Co do Hooków to przenalizuj sobie kod z pod poniższego linku, na XP oraz pod Delphi 7 działa ok.
http://www.mediafire.com/file/rxalzlz0778lx9t/calc_control.rar - zaś co do drugiego pytanir to
pewnie OnDectivate zachodzi kiedy indziej, najlepiej sprawdź to w helpie kiedy to ma miejsce.
A chyba najprostszym rozwiązaniem jest ustawienie Timera z małym Intervaelm i może taki kod,
oczywiście jeżeli efekt osiągnany przez własności StayOnTop dla formatki Tobie nie wystarcza.

procedure TForm1.Timer1Timer(Sender: TObject);
var
  H : HWND;
begin
  H := Self.Handle;
  if GetForegroundWindow <> H then
  begin
    if IsIconic(Application.Handle) then
    begin
      ShowWindow(Application.Handle, SW_SHOW);
      ShowWindow(Application.Handle, SW_RESTORE);
    end
    else
    begin
      SetForeGroundWindow(Application.Handle);
    end;
  end;
end;

I nie obraź się TomRiddle, wiem że kto pyta to nie bładzi, ale Ty chyba za trudne sobie programy wymyślasz,
zamiast najpierw pokombinować może z podstawami, bo co kombinujesz przy nowym projekcie - to trafiasz
na kolejne problemy. Ja lubie pomagać tutaj, o ile potrafię. Ale dziwi mnie że słabo coś ogarniasz banały ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1