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

Вниз

Проблеммы   Найти похожие ветки 

 
XsID ©   (2003-01-21 03:45) [0]

Нужна помощь!

В VCL работало, а вот в KOL не работает. Ставлю хук и он посылает программе мэссэдж которая затем его обрабатывает. Как я понял когда выполняется процедура processDll возникает ошибка (run time error).

uses
windows,messages,kol;
{$R *.res}
function Key_Hook(code:integer;wparam:word;lparam:longint):longint;stdcall;
external "Project2" name "key_hook";
procedure UnHook;stdcall;
external "Project2" name "UnHook";
procedure sethook;
external "Project2" name "sethook";

const
num:array[1..10] of char =
(")","!","@","#","$","%","^","&","*","(");
num1:array[1..14] of char =
(";","=",",","-",".","/","`",":","+","<","_",">","?","~");
num2:array[1..8] of char =
("[","\","]","""","{","|","}",""");
wm_key=wm_user+133;
var
form,but1,but2,lab:Pcontrol;
-------------------------------------------------------
function processDll(var m:TMsg;var Res:integer):boolean;
var s:string;
begin
if m.message = wm_key then begin
if m.WParam in [96..105] then m.WParam:=m.WParam-48;
case m.WParam of
8:begin
s:=lab.caption;
delete(s,length(s),1);
lab.Caption:=s;
end;
9:lab.caption:=lab.caption +" [tab] " ;
else
if getAsyncKeyState(16)<>0 then begin
if m.WParam in [48..57] then lab.Caption:= lab.Caption + num[m.WParam-47] else
if m.WParam in [219..222] then lab.Caption:= lab.Caption + num2[m.WParam-214] else
if m.WParam in [186..192] then lab.Caption:= lab.Caption + num1[m.WParam-178] else
lab.Caption:=lab.Caption + chr(m.wparam);
end
else
if m.WParam in [186..192] then lab.Caption:=lab.Caption+num1[m.wparam-185] else
if m.WParam in [219..222] then lab.Caption:= lab.Caption + num2[m.WParam-218] else
lab.Caption:=lab.Caption + lowercase(chr(m.wparam));
end;
end;
end;
-----------------------------------------------------------------
begin
applet:=newapplet("Key Hook");
form:=newform(applet,"Main");
form.Style:=ws_border or ws_sysmenu or ws_minimizebox or ws_visible;
form.SetSize(400,340);
form.OnMessage:=TOnMessage(MakeMethod(nil,@processDll));
---------------------------------------------------------------------
run(applet);
end.



 
Kladov   (2003-01-21 20:38) [1]

не хватает первого параметра Dummy: Pointer. См. faq на этом сайте.



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
14-82427
SergP
2003-09-07 20:34
2003.09.25
Посоветуйте прогу для закачки файлов.


1-82183
Spam
2003-09-13 03:27
2003.09.25
tCollection


3-82140
Haba
2003-09-03 17:28
2003.09.25
DBGrid, XML и DecimalSeparator


14-82409
Knight
2003-09-04 03:58
2003.09.25
Dial-Up под Win2k


1-82290
Сава
2003-09-14 21:44
2003.09.25
Работа со временем