Czy wciśnięty CTRL?

0

Korzystam z HOOKa i potrzebuje zrobić rozpoznanie kiedy jest CTRL + 1

robie tak :

function Play(Code: integer; wParam, lParam: Longint): Longint; stdcall;
begin
with form1 do begin
 case Code of
  HC_ACTION: begin
  MessageBuffer:=PEventMsg(lParam)^;

  if (MessageBuffer.message=wm_KeyDown)and(MessageBuffer.paraml=7441 then ctrl:=true;

  if MessageBuffer.message=WM_KEYUP then
  begin
   case MessageBuffer.paraml of
    7441 : ctrl:=false;
    561 : If ctrl Then begin ClipBoard.AsText:=memo1.lines.Text; wklej:=true; end;
    end;
   else wklej:=false;
   end;

   If wklej Then
   Begin
     ODDPALONO SKRÓT CTRL + 1
   end;

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

Niestety dzialqa raz na 10 razy :)

0

przejrzyj źródła komponentów KeySpy i KeySpyXP - tam znajdziesz rozwiązanie

0

w keyspy i keyspyxp nie bylo hooka. co do keyspy nie jestem pewny, ale z tego co pamietam byl on pisany w asemblerze. keyspyxp pisalem bez uzycia hooka, gdyz wtedy go nie znalem :-)

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