Показать сообщение отдельно
  #59  
Старый 12.11.2012, 14:28
helgboy helgboy вне форума
Прохожий
 
Регистрация: 30.10.2012
Сообщения: 33
Репутация: 10
По умолчанию

Код:
  
var
  SysHook : HHook = 0;
  Wnd : Hwnd = 0;
  nx1:pointer; 

 function SysMsgProc(code : integer; wParam : word;
        lParam : longint) : longint; stdcall;

    begin
    CallNextHookEx(SysHook, Code, wParam, lParam);
    if code = HC_ACTION then
    begin
        Wnd := TMsg(Pointer(lParam)^).hwnd;
     
        if TMsg(Pointer(lParam)^).message =WM_KEYDOWN then  //Работает
    case (TMsg(Pointer(lParam)^).wParam) of
    37:   begin left()          end;
    end;


    end;
    end;

procedure left();
    begin
    keyctrl(nx1);
    end;


              // Процедура запуска.
    procedure RunStopHook(State : Boolean;pointval:pointer) export; stdcall;
      begin
          if State=true then
          begin
          // Запускаем ловушку.
          SysHook := SetWindowsHookEx(WH_GETMESSAGE,
            @SysMsgProc, HInstance, 0);
          nx1:=pointval;
        end
        else
        begin
          // Отключить ловушку.
          UnhookWindowsHookEx(SysHook);
          SysHook := 0;
        end;
      end;
      exports RunStopHook;
Ответить с цитированием