Hola ecfisa.
Problema resuelto, use este código:
Código:
unit Unit2;
interface
uses Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure HotKey(var Message: TMessage); message WM_HOTKEY;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
end;
var Form1: TForm1;
implementation
{$r *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 111, 0, VK_F1);
RegisterHotKey(Handle, 222, 0, VK_F2);
end;
procedure TForm1.HotKey(var Message: TMessage);
begin
case Message.WParam of
111: Timer1.Enabled := True; // F1
222: Timer1.Enabled := False; // F2
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 111);
UnregisterHotKey(Handle, 222);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Beep(1000, 100);
end;
end.
Mire más en la web que me dejaste de MSDN y mire la función RegisterHotKey más a fondo. Lo único que me dio problemas es la línea del timer:
Código:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Beep(1000, 100);
end;
Me salía el error: Too many parameters
Al final probé quitando esa línea y funcionó, no se si será importante.
Saludos.