Форум: "KOL";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизПроблеммы Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c