Ver Mensaje Individual
  #11  
Antiguo 12-05-2013
MCanuto MCanuto is offline
Registrado
NULL
 
Registrado: may 2013
Posts: 6
Reputación: 0
MCanuto Va por buen camino
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.
Responder Con Cita