capturar eventos

Delphi

29/08/2003

Olá, preciso fazer um programa que rode como um serviço (background)
e que capture qdo o usuário aperta alguma tecla(não preciso sabe qual tecla) ou
mova o mouse ...
alguém tem alguma ideia de como posso fazer este programa?


Zxyv

Zxyv

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

29/08/2003

Crie uma dll + ou - assim:

library FazAlgumaCoisaQuandoTeclaAlgo;
uses
  Windows,
  SysUtils;

{$R *.RES}

function function FazAlgumaCoisa(code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT stdcall;
begin
  if (code <> HC_NOREMOVE)and(lParam<0) then begin
      case wParam of
        //coloque aqui o que vai acontecer quando preesionar alguma tecla
       //ex: VK_Return: quando pressionar enter
      end;
  Result := CallNextHookEx(HHOOK(nil), code, wParam, lParam);
end;

exports
  FazAlgumaCoisa;

begin
end.


depois, crie algum programa que vai carregar a dll:
e declare essas varéveis:
  idKeyLog : HHOOK;
  KeyLogDLL: LongWord;
  KeylogHookProc : FARPROC;


para carregar a dll e executar a função toda vez que teclar algo:

  KeylogDLL:=LoadLibrary(´A sua dll.dll´);
  KeylogHookProc:=GetProcAddress(KeylogDLL,´FazAlgumaCoisa´{nome da função});
  idKeylog:=SetWindowsHookEx(WH_KEYBOARD,KeylogHookProc,KeyLogDLL,0);

você pode trocar esse: WH_KEYBOARD por outra coisa, acho que ai existem várias opções, essa faz com que q função seja executada toda fez que teclar algo, tem tambemde quando mover o mouse, e outras...

e para ´descarregar´ a DLL:

    UnhookWindowsHookEx(idKeyLog);


esses procedimentos foram retirados de um exemplo que tem aqui no site do clube delphi ´KeyLogof´, keylogf foi desenvolvido por: Richard de Jesus Natal


GOSTEI 0
POSTAR