Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   como detectar multiples teclas en un mensaje de teclado (https://www.clubdelphi.com/foros/showthread.php?t=62649)

alquimista 06-01-2009 19:09:39

como detectar multiples teclas en un mensaje de teclado
 
Me gustaria saber si se han pulsado las teclas ctrl+shift+Alt +F5 por ejemplo si tengo un mensaje de teclado (es para usarlo en un hook de teclado)

var Mensaje : TMessage;

utilizando Mensaje.lparam

Alguna sugerencia?

Saludos:)

ContraVeneno 06-01-2009 19:29:23

Código Delphi [-]
procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 If (Key=VK_F5) and (ssCtrl in shift) and (ssShift in shift) and (ssAlt in Shift) Then begin
     showmessage('press, press, press');
end;

alquimista 06-01-2009 19:49:23

La anterior rutina es para cuando la app tiene el foco...
es para hacerlo a partir de un message.lparam que tiene 32 bits, aunque la app no tenga el foco.

cHackAll 06-01-2009 20:18:53

Código Delphi [-]
unit Unit1;
 
interface
 
uses Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
 
type
 TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure HotKey(var Message: TMessage); message WM_HOTKEY;
 end;
 
var Form1: TForm1;
 
implementation
 
{$r *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 RegisterHotKey(Handle, 666, MOD_ALT or MOD_CONTROL or MOD_SHIFT, VK_F5);
end;
 
procedure TForm1.HotKey(var Message: TMessage);
begin
 if Message.WParam = 666 then
  begin
   SetForegroundWindow(Handle);
   ShowMessage('HOT key');
  end;
end;
 
end.

alquimista 06-01-2009 21:22:49

FUNCIONA cHackAll !!!

ok...:):):)

Ya lo probe y va muy bien...


Gracias...pensaba que solo se podia haciendo hook con dll.

Un saludo. gracias a todos...


La franja horaria es GMT +2. Ahora son las 08:34:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi