Главная страницаОбратная связьКарта сайта

Перехватывать сообщения Windows до Application.Run

Пример проекта показывает, как получить и обработать сообщения Windows до Application.Run. Это редкий случай, в большинстве случаев переопределение процедуры Application.OnMessage будет делать то же самое.


program Project1;

uses
  Forms,
  Unit1 in "UNIT1.PAS" { Form1 },
  Messages, WinTypes, WinProcs,

{$R *.RES}

var
  OldWndProc: TFarProc;

function NewWndProc(hWndAppl: HWnd; Msg, wParam: Word; lParam: Longint):
  Longint; export;
begin
  { default WndProc return value }
  Result := 0;
  { handle messages here; the message number is in Msg }
  Result := CallWindowProc(OldWndProc, hWndAppl, Msg, wParam, lParam);
end;

begin
  Application.CreateForm(TForm1, Form1);
  OldWndProc := TFarProc(GetWindowLong(Application.Handle, GWL_WNDPROC));
  SetWindowLong(Application.Handle, GWL_WNDPROC, Longint(@NewWndProc));
  Application.Run;
end.


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Перехватывать сообщения Windows до Application.Run", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2021 Дискета.info