Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизWM_COPYDATA Найти похожие ветки
← →
alex732 (2004-04-08 10:21) [0]Добрый день. Подскажите.. Ставлю хук на клавиатуру.. Хочу передать своей программе время последнего нажатия на кнопку. Пишу:
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 10:22) [1]или можно это сделать как то по другому?
← →
VMcL © (2004-04-08 15:56) [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 18:50) [3]Ок. Спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.037 c