Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Внизhook Найти похожие ветки
← →
dikiy (2005-12-04 14:07) [0]
var
Hook: HHook;
function GetMsgProc(code: integer; wParam: Longint; lParam:
Longint): longword; stdcall;
//начало выполнения
procedure TForm1.FormCreate(Sender: TObject);
begin
Hook:=SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, 0, 0);
end;
function GetMsgProc(code: integer; wParam: Longint; lParam:
Longint): longword; stdcall;
begin
if code< 0 then
begin
result:=CallNextHookEx(Hook,code,wParam,lparam);
Exit;
end;
if ( PMsg(lParam).message = wm_char)then
begin
//обработка пойманого сообщения
Form1.Memo1.Lines.Add("a");
end;
result:=0;
CallNextHookEx(Hook,code,wParam,lparam);
end;
Пытаюсь поймать wm_char, но на него не срабатывает.
Может надо использовать другой тип ловушки(с возможностью изменения сообщения)?
← →
Lamer@fools.ua © (2005-12-04 14:56) [1]>>dikiy (04.12.05 14:07)
Вы пытаетесь установить глобальную ловушку, а глобальная ловушка такого типа должна находиться в отдельной библиотеке (DLL). В Вашем случае глобальная ловушка, видимо, не нужна:Hook:=SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, 0, GetCurrentThreadId);
P.S. Читайте справку по функции SetWindowsHookEx().
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.013 c