Перехватывать сообщения 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.
Пример проекта на Delphi демонстрирует перехват сообщений Windows до запуска приложения с помощью переопределения процедуры обработки оконных сообщений.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS