
20.06.2015, 22:41
|
Прохожий
|
|
Регистрация: 20.06.2015
Сообщения: 8
Версия Delphi: Delphi
Репутация: 10
|
|
Цитата:
Сообщение от Alegun
Нужно глушить обработку первичного сообщения методом обнуления, посмотрите вот такой пример, вдруг поможет
|
я так понял вот эту функцию ты имел в виду
Код:
function KeyHookFunc(Code, VirtualKey, KeyStroke: integer): LRESULT; stdcall;
var
Kv: TKeyBoardState;
b: array[0..1] of char;
begin
Result:= 0;
if Code = HC_NOREMOVE then Exit;
Result:= CallNextHookEx(hK, Code, VirtualKey, KeyStroke);
if Code < 0 then Exit;
if Code = HC_ACTION then
begin
if ((KeyStroke and (1 shl 30)) <> 0) then
{if not IsWindow(hA) then }begin
hM:= OpenFileMapping(FILE_MAP_WRITE, False, 'MyKeyMap');
Hr:= MapViewOfFile(hM, FILE_MAP_WRITE, 0, 0, 0);
if Hr <> nil then hA:= Hr.AppHnd;
end;
if ((KeyStroke and (1 shl 30)) <> 0) then
begin
GetKeyboardState(Kv);
if ToAscii(VirtualKey, KeyStroke, Kv, b, 0) = 1 then
SendMessage(hA, WM_USER + 1753, Ord(b[0]), Code)
else
if VirtualKey = 19 then SendMessage(hA, WM_USER + 1753, 0, 19);
end;
end;
end;
hK:= SetWindowsHookEx(WH_KEYBOARD, KeyHookFunc, hInstance, 0);//<тут обибка
только ошибку выбивает
Код:
[dcc32 Error] Unit1.pas(291): E2010 Incompatible types: 'NativeUInt' and 'Integer'
|