Главная страница
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.017 c
4-48842
Timoty
2003-07-15 23:44
2003.09.15
Как поменять цвет полосы прокрутки и заголовка окна?


14-48687
zdn
2003-08-25 20:59
2003.09.15
asus cd-rom


6-48667
ws
2003-07-11 11:16
2003.09.15
Помогите с ошибками сокетов, плиз!


3-48405
Alek Aaz
2003-08-25 15:35
2003.09.15
MDI и базы


14-48737
Карлсон
2003-08-27 10:32
2003.09.15
я вернулся!