private
   aatom:atom;
   c:atom;
    procedure   hotkey(var   msg:tmessage);message   wm_hotkey;     //定义全局热键消息事件
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;a,b:integer;
implementation{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
aatom:=globaladdatom('hotkey');
c:=globaladdatom('hotkey');                 //全局热键ID
RegisterHotKey(handle,aatom,MOD_ALT,vk_f12); //注册全局热键
RegisterHotKey(handle,c,MOD_ALT,vk_f11);
end;
procedure TForm1.hotkey(var msg:tmessage);        //热键响应事件begin
      if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then    //全局热键 ALT+F12
  begin
          a:=a+1;
          a:=a mod 2;
          if a=1 then
      checkbox1.Checked:=true
      else
      checkbox1.Checked:=false
      end;
  if (msg.LParamHi=VK_F11) and (msg.LParamLo=MOD_ALT) then
             b:=b+1;
          b:=b mod 2;
          if b=1 then
   checkbox2.Checked:=true
    else
    checkbox2.Checked:=falseend;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
globalDeleteatom(aatom);
globalDeleteatom(c);
end;
如上代码, 编译是成功。
热键ALT+F11是可以运行。
但是,ALT+F12却没效果,
不知道为什么?