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...
Hook?
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?
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 ;/