Главная страница
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-48708
DeMoN-777
2003-08-28 13:57
2003.09.15
Интересуюсь...


14-48751
Kost
2003-08-28 12:58
2003.09.15
Помогите с проблемой...


3-48482
Алексей Петухов
2003-08-22 13:45
2003.09.15
Сохранить и Загрузить.


3-48424
Кирилл
2003-08-25 16:25
2003.09.15
Ув. мастера, Как определить размер записи?


14-48793
Scholl
2003-08-26 01:20
2003.09.15
Покупка диска