2 Пробовал использовать хук для замены клавиш .. ничего не вышло ! (нет, сделать то что было нужно я сделал, но через внешнюю надстройку в основной программе где проверял наличие срабатывания хука по таймеру и тут же эмулировал нажатие другой клавиши ) Так интересно можно ли просто подменить параметры при вызове CallNextHookEx(theHook, nCode, wParam, lParam);?
3 Где бы посмотреть формат lParam ?
Зы
Мой "типа Хук"...
- Код: Выделить всё
library hook;
{$mode objfpc}{$H+}
uses
SysUtils,windows, messages ;
var
theHook: THandle; //хэндл ловушки для дальнейшего удаления
Const F12_On:Boolean=false;
function MouseHook(nCode, wParam, lParam: integer): Lresult; stdcall;
begin
if nCode < 0 then
begin
result := CallNextHookEx(theHook, nCode, wParam, lParam);
exit;
end;
if (wParam = VK_F12 ) then
begin
F12_On:=True;
end;
result := CallNextHookEx(theHook, nCode, wParam, lParam); //дальше по цепочке
end;
//-------------------------------------------------------------------------
procedure Start;
begin
theHook := SetWindowsHookEx(WH_KEYBOARD, @MouseHook, hInstance, 0); //установка ловушки
if theHook = 0 then
messageBox(0, 'Error!', 'Error!', mb_ok);
end;
//-------------------------------------------------------------------------
procedure Remove;
begin
UnhookWindowsHookEx(theHook); //удаление ловушки
end;
Function CheckedF12:boolean;export;
begin
Result:=F12_On;
F12_On:=False;
end;
//-------------------------------------------------------------------------
{R *.res}
Exports
Start index 1 name 'Start',
Remove index 2 name 'Remove',
CheckedF12 index 3 name 'CheckedF12';
begin
end.