怎么样实现按Ctrl+Alt+Z来实现托盘窗体的弹出(30分)

  • 主题发起人 主题发起人 枫红一刀流
  • 开始时间 开始时间

枫红一刀流

Unregistered / Unconfirmed
GUEST, unregistred user!
如果我想像Oicq中那样按Ctrl+Alt+Z来实现托盘窗体的弹出,应该怎么做,是要用钩子吗?
愿听高见。
 
钩子钩住键盘不就得了[8D]
 
用RegisterHotKey函数
简例如下
......
public
procedure WMHotKey(var Message: TWMHOTKEY);
message WM_HOTKEY;
................
procedure TForm1.FormCreate(Sender: TObject);
begin
//注册ctrl+shift+alt+a热键
RegisterHotKey(Handle, GlobalAddAtom('hotkey'), MOD_CONTROL+MOD_ALT+MOD_SHIFT, ord('A'));
end;

procedure TForm1.WMHotKey(var Message: TWMHOTKEY);
begin
//按下热键所执行的事件
application.MessageBox('内容','标题',mb_ok);
end;

procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//在关闭时注销热键
UnregisterHotKey(Handle, GlobalAddAtom('hotkey'));
end;
 
QuickSilver的方法倒是很有趣,下线后我试试,二位都会有分数的,不用着急。但我这里在
实现窗体的弹出后,为何是取不到焦点。这种在不同的Form上焦点转移是两个Application上
的吗?用WM_ACTIVEDAPP还是其它?愿闻其详。
 
[:)]一定要用Hook!!!!不然在玩游戏的时候RegisterHotKey没有反应
 
接受答案了.
 
后退
顶部