如何为一个应用程序设置多个全局热键?(100分)

  • 主题发起人 主题发起人 hxy2002
  • 开始时间 开始时间
H

hxy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
如何为一个应用程序设置多个全局热键?
 
可以用菜單,簡單有效.Visible:=False
 
如果程序在后台,也可以用热键调出来。
用RegisterHotKey 只能注册一个.能不能注册多个。
 
谁说RegisterHotKey只能注册一个呀?

procedure TForm1.FormCreate(Sender: TObject);
begin
id:=GlobalAddAtom('MyHotkey');
id1:=GlobalAddAtom('MyHotkey1');
id2:=GlobalAddAtom('MyHotkey2');
RegisterHotKey(Handle, id, MOD_CONTROL, VK_F1);
RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);
RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,ID);
UnregisterHotKey(Handle,ID1);
UnregisterHotKey(Handle,ID2);
end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if msg.HotKey=ID then
ShowMessage('Ctrl+F1!')
else if Msg.HotKey=ID1 then
ShowMessage('Ctrl+F2!')
else if Msg.HotKey=ID2 then
ShowMessage('Ctrl+F3!');
end;
 
接受答案了.
 
后退
顶部