Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

Как правильно анализировать сообщения WM_CHAR ?   Найти похожие ветки 

 
Dwemer ©   (2003-07-16 03:27) [0]

У меня в dll стоит хук на WH_GETMESSAGE, затем я отбираю сообщение WM_CHAR. И все бы ничего, но пока эта dll загружена, все (абсолютно все, даже Explorer) програмы еррорятся ("... обратилась к участку памяти по адресу...... который не может быть write") и в самой библиотеке такие-же ерроры. Подскажите пожалуйста что я делаю не так, вот код:

library keyhook;

uses
WinTypes,
// SysUtils,
Messages;

const
MMFName: PChar = "KeyMMF";

type
PGlobalDLLData = ^TGlobalDLLData;
TGlobalDLLData = packed record
SysHook: hHook;
MyAppWnd: HWND;
end;

var
GlobalData: PGlobalDLLData;
MMFHandle: THandle;
WM_MYKEYHOOK: Cardinal;
m: TMsg;
ch: char;
st: string[10];
F: Text;

procedure log;
begin
Write(F, st);
Flush(F);
end;

function GetMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
AppWnd: HWND;
begin
if code < 0 then
begin
Result:= CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Exit;
end;
m := TMSG((Pointer(lparam))^);
if m.message = WM_CHAR then
begin
ch:=chr(m.wParam);
write(F, ch);
flush(F);
//SendMessage(GlobalData^.MyAppWnd, WM_MYKEYHOOK, m.wParam, AppWnd);
end;
CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Result:= 0;
end;

procedure hook(switch : Boolean; hMainProg: HWND) export; stdcall;
begin
if switch=true then
begin
GlobalData^.SysHook := SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, HInstance, 0);
GlobalData^.MyAppWnd:= hMainProg;
if GlobalData^.SysHook <> 0 then
MessageBox(0, "KEYBOARD HOOK


 
Dwemer ©   (2003-07-16 15:53) [1]

Хелп ми плииз!!!



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
14-48766
Chlavik
2003-08-26 13:40
2003.09.15
(ASM) Сохранение/ввостановление MMX регистров


3-48448
Навичек
2003-08-25 04:22
2003.09.15
Ошибка с ADO Delphi 5


1-48646
yuliya
2003-08-28 07:34
2003.09.15
String


1-48513
Переяслов Григорий
2003-09-04 14:49
2003.09.15
Прозрачный фонт при прорисовке текста в Canvas


3-48435
Quest
2003-08-25 11:54
2003.09.15
Ado -> Excel ... смена формата ячейки