Intercepter le message du clavier !

cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005 - 12 août 2004 à 06:42
cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005 - 12 août 2004 à 22:24
Bon, le sujet à surement déja été évoqué, mais j'ai passé ma nuit dessus et j'ai rien trouvé ...

Serai-til possible, en ayant le focus sur mon appli, d'intercépter les messages des touches du clavier, ou dumoin certaines touches (pour "blocker" une partie du clavier.)

Je sait que l'on peut obtenir l'info (pour faire des keyloggers, par exemple), mais est(il possible de STOPPER l'info ?

Merci d'avance
swop

2 réponses

Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
12 août 2004 à 13:28
Salut,

Si tu veux capter tous les appuyes de touches sur ton application, il faut que tu interceptes les postmessages à cet effet.

il faut que tu crées une procedure récupérerant les posts messages.

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message = WM_KEYDOWN then
  begin
    Handled := False;

    // Il faut mettre ton traitement ici.
    Caption := IntToStr(Msg.wParam);

    // je test si j'appuies sur la Touche "F1"
    if Msg.wParam = VK_F1 then
    begin
      ShowMessage('F1'); 
      Handle := True;
    end;

    // je test si j'appuies sur la Touche "A"
    if Msg.wParam = word(char('A')) then
    begin
      ShowMessage(Char(Msg.wParam)); 
      // Handle = True bloque la gestion de la touche et n'est pas prise en compte par d'autre composants.
      Handle := True;
    end;
     
  end;
end;


ensuite il faut que tu affectes cette procedure à l'evenement OnMessage de ton application.

procedure TForm1.FormShow(Sender: TObject);
begin
  Application.OnMessage := AppMessage;
end;


Et le tour et jouer ;)

Bonne Prog,

Olivier
0
cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005
12 août 2004 à 22:24
merci, je vai tester, même si ya des trucs qui faudra que j'éclaircisse ..

salut
swop
0
Rejoignez-nous