procedure TForm1.FormCreate(Sender: TObject); Var TmpID:Integer; begin TmpID:=GlobalFindAtom('MyHotkey'); if TmpID=0 then //查找全局原子.如果返回值不为0,则说明这个全局原子已经被注册; id:=GlobalAddAtom('MyHotkey') else ID:=TmpID; TmpID:=GlobalFindAtom('MyHotkey1'); if TmpID=0 then id1:=GlobalAddAtom('MyHotkey1') else id1:=TmpID; TmpID:=GlobalFindAtom('MyHotkey2'); if TmpID=0 then id2:=GlobalAddAtom('MyHotkey2') else id2:=TmpID; RegisterHotKey(Handle, id, MOD_CONTROL, VK_F1); //注册热键:Ctrl+F1 RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);//注册热键:Ctrl+F2 RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);//注册热键:Ctrl+F3 end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle,ID);//释放热键Ctrl+F1 UnregisterHotKey(Handle,ID1);//释放热键Ctrl+F2 UnregisterHotKey(Handle,ID2);//释放热键Ctrl+F3 GlobalDeleteAtom(ID); //删除全局原子ID GlobalDeleteAtom(ID1);//删除全局原子ID1 GlobalDeleteAtom(ID2);//删除全局原子ID2 end; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if msg.HotKey=ID then //热键Ctrl+F1的消息. ShowMessage('Ctrl+F1!') else if Msg.HotKey=ID1 then //热键Ctrl+F2的消息. ShowMessage('Ctrl+F2!') else if Msg.HotKey=ID2 then //热键Ctrl+F3的消息. ShowMessage('Ctrl+F3!'); end;
全代码: 注册ctrl+shift+F1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } procedure WMHotKey(var Msg: TWMHotKey);message WM_HOTKEY; public { Public declarations } id,id1,id2: Integer; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); Var TmpID:Integer; begin TmpID:=GlobalFindAtom('MyHotkey'); if TmpID=0 then //查找全局原子.如果返回值不为0,则说明这个全局原子已经被注册; id:=GlobalAddAtom('MyHotkey') else ID:=TmpID; TmpID:=GlobalFindAtom('MyHotkey1'); if TmpID=0 then id1:=GlobalAddAtom('MyHotkey1') else id1:=TmpID; TmpID:=GlobalFindAtom('MyHotkey2'); if TmpID=0 then id2:=GlobalAddAtom('MyHotkey2') else id2:=TmpID; RegisterHotKey(Handle, id, MOD_CONTROL or MOD_SHIFT, VK_F1); //注册热键:Ctrl+Shift+F1 RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);//注册热键:Ctrl+F2 RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);//注册热键:Ctrl+F3 end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle,ID);//释放热键Ctrl+F1 UnregisterHotKey(Handle,ID1);//释放热键Ctrl+F2 UnregisterHotKey(Handle,ID2);//释放热键Ctrl+F3 GlobalDeleteAtom(ID); //删除全局原子ID GlobalDeleteAtom(ID1);//删除全局原子ID1 GlobalDeleteAtom(ID2);//删除全局原子ID2 end; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if msg.HotKey=ID then //热键Ctrl+Shift+F1的消息. ShowMessage('Ctrl+Shift+F1!') else if Msg.HotKey=ID1 then //热键Ctrl+F2的消息. ShowMessage('Ctrl+F2!') else if Msg.HotKey=ID2 then //热键Ctrl+F3的消息. ShowMessage('Ctrl+F3!'); end;end.
Var TmpID:Integer;
begin
TmpID:=GlobalFindAtom('MyHotkey');
if TmpID=0 then //查找全局原子.如果返回值不为0,则说明这个全局原子已经被注册;
id:=GlobalAddAtom('MyHotkey')
else
ID:=TmpID; TmpID:=GlobalFindAtom('MyHotkey1');
if TmpID=0 then
id1:=GlobalAddAtom('MyHotkey1')
else
id1:=TmpID; TmpID:=GlobalFindAtom('MyHotkey2');
if TmpID=0 then
id2:=GlobalAddAtom('MyHotkey2')
else
id2:=TmpID;
RegisterHotKey(Handle, id, MOD_CONTROL, VK_F1); //注册热键:Ctrl+F1
RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);//注册热键:Ctrl+F2
RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);//注册热键:Ctrl+F3
end; procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,ID);//释放热键Ctrl+F1
UnregisterHotKey(Handle,ID1);//释放热键Ctrl+F2
UnregisterHotKey(Handle,ID2);//释放热键Ctrl+F3
GlobalDeleteAtom(ID); //删除全局原子ID
GlobalDeleteAtom(ID1);//删除全局原子ID1
GlobalDeleteAtom(ID2);//删除全局原子ID2
end; procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if msg.HotKey=ID then //热键Ctrl+F1的消息.
ShowMessage('Ctrl+F1!')
else if Msg.HotKey=ID1 then //热键Ctrl+F2的消息.
ShowMessage('Ctrl+F2!')
else if Msg.HotKey=ID2 then //热键Ctrl+F3的消息.
ShowMessage('Ctrl+F3!');
end;
注册ctrl+shift+F1
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMHotKey(var Msg: TWMHotKey);message WM_HOTKEY;
public
{ Public declarations }
id,id1,id2: Integer;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
Var TmpID:Integer;
begin
TmpID:=GlobalFindAtom('MyHotkey');
if TmpID=0 then //查找全局原子.如果返回值不为0,则说明这个全局原子已经被注册;
id:=GlobalAddAtom('MyHotkey')
else
ID:=TmpID; TmpID:=GlobalFindAtom('MyHotkey1');
if TmpID=0 then
id1:=GlobalAddAtom('MyHotkey1')
else
id1:=TmpID; TmpID:=GlobalFindAtom('MyHotkey2');
if TmpID=0 then
id2:=GlobalAddAtom('MyHotkey2')
else
id2:=TmpID;
RegisterHotKey(Handle, id, MOD_CONTROL or MOD_SHIFT, VK_F1); //注册热键:Ctrl+Shift+F1
RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);//注册热键:Ctrl+F2
RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);//注册热键:Ctrl+F3
end; procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,ID);//释放热键Ctrl+F1
UnregisterHotKey(Handle,ID1);//释放热键Ctrl+F2
UnregisterHotKey(Handle,ID2);//释放热键Ctrl+F3
GlobalDeleteAtom(ID); //删除全局原子ID
GlobalDeleteAtom(ID1);//删除全局原子ID1
GlobalDeleteAtom(ID2);//删除全局原子ID2
end; procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if msg.HotKey=ID then //热键Ctrl+Shift+F1的消息.
ShowMessage('Ctrl+Shift+F1!')
else if Msg.HotKey=ID1 then //热键Ctrl+F2的消息.
ShowMessage('Ctrl+F2!')
else if Msg.HotKey=ID2 then //热键Ctrl+F3的消息.
ShowMessage('Ctrl+F3!');
end;end.