![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_COPYDATA [D7]
alex732 © (2004-04-08 10:21:00)Добрый день. Подскажите.. Ставлю хук на клавиатуру.. Хочу передать своей программе время последнего нажатия на кнопку. Пишу:
library MyHook;
.................
procedure hook export; stdcall;
begin
K := SetWindowsHookEx(WH_KEYBOARD, @KeyProc1, HInstance, 0);
end;
function KeyProc1(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
cd : TCopyDataStruct;
begin
Times := GetTickCount();
cd.cbData := Length(inttostr(Times))+1;
cd.lpData := PChar(inttostr(Times));
SendMessage(FindWindow('TForm1', nil),
WM_COPYDATA, 0,lParam(@cd));
^^[Error] MyHook.dpr(34): Missing operator or semicolon
Result:= CallNextHookEx(K, Code, wParam, lParam);
end;
...............
Брррр... Почему??
alex732 (2004-04-08 18:50:00) [1]Ок. Спасибо.
VMcL (2004-04-08 15:56:00) [2]>>alex732
lParam - параметр функции, поэтому компилятор "не видит" тип LPARAM, определенный в модуле Windows.
Пиши:
SendMessage(FindWindow('TForm1', nil),
WM_COPYDATA, 0, Integer(@cd));
или
SendMessage(FindWindow('TForm1', nil),
WM_COPYDATA, 0, Windows.LPARAM(@cd));
alex732 (2004-04-08 10:22:00) [3]или можно это сделать как то по другому?