按键盘“F1”所触发的事件是什么?(50分)

  • 主题发起人 主题发起人 pk-boy
  • 开始时间 开始时间
P

pk-boy

Unregistered / Unconfirmed
GUEST, unregistred user!
  请问按键盘“F1”、“F2”、...所触发的Delphi事件是什么?
 
OnKeyPress
OnKeyDown
OnKeyUp
 
呵呵,单独的按键……
 
1, keydown
2, keyup
keypress 应该不触发。
 
keypress应该也被触发了吧,虽然它不是真正的windows消息
 
  如果这个进程没有获得焦点,好象这几个事件都触发不了。
有什么办法解决?
 
那总有一个进程有焦点吧,在这个有进程的焦点里就有
没有焦点用Hook不知行不行
 
用设置热键的原理:
1、声明一个全局变量:
      HotKeyId: Integer;

2、在窗口的create事件中,加入以下代码
HotKeyId := GlobalAddAtom(‘MyHotKey’) - $C000;
RegisterHotKey(Handle, hotkeyid, MOD_ALT, VK_F8);
3、在程序头部分的private段中加入声明:
procedure HotKeyDown(var Msg: Tmessage);
message WM_HOTKEY;
  具体实现:
procedure Tfmain.HotKeyDown(var Msg: Tmessage);
  begin

// 假设热键为ALT+F8
  if (Msg.LparamLo = MOD_ALT) AND (Msg.LParamHi = VK_F8)
then
begin

......
end;
end;

4、在窗口的close事件中加入
UnRegisterHotKey(handle, HotKeyId);
//注销HotKey, 释放资源。
大概就是这几步!具体的API怎样用自己查书吧!
 
多人接受答案了。
 
后退
顶部