PDA

Ver la Versión Completa : detectar teclas


DarkSton
23-02-2024, 22:04:18
una pregunta quiero detectar teclas imprPant- Insert - Supr - re Pag- Av pag , pero que el form este minimizado los que he probado tengo que presionar encima del form para que funcione

Northern
23-02-2024, 22:35:46
Si esto funciona nos lo cuentas


https://github.com/masterzion/delphi-keylogger/blob/master/Unit1.pas

escafandra
24-02-2024, 15:23:08
Quizás te interese revisar la API RegisterHotKey (https://learn.microsoft.com/es-es/windows/win32/api/winuser/nf-winuser-registerhotkey)
Te dejo un ejemplo:

unit Unit1;


interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure HotKey(var Message: TMessage); message WM_HOTKEY;
public

end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 111, 0, VK_SNAPSHOT);
end;

procedure TForm1.HotKey(var Message: TMessage);
var
MousePos: TPoint;
begin
case Message.WParam of
111: ShowMessage('Se Pulsó ImprPant');
end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 111);
end;

end.



Saludos.

Neftali [Germán.Estévez]
26-02-2024, 08:59:37
...quiero detectar teclas imprPant- Insert - Supr - re Pag- Av pag , pero que el form este minimizado los que he probado tengo que presionar encima del form para que funcione

Yo creo que la solución pasa por crear un hook de teclado a nivel de sistema, como comenta [escafandra].
Ya hemos hablado otras veces del tema en los foros.
Si buscas por "hook de teclado" (o por las palabras registerhotkey o unregisterhotkey) encontrarás varios temas y códigos al respecto para instalarlo y desinstalarlo.