readme.txt

来自「用Delphi6写的演示在程序中如何设定富于个性的热键,例如F+J.」· 文本 代码 · 共 22 行

TXT
22
字号
设定富于个性的热键
破天惊   http://tresss.com

  现在的软件种类繁多,数量惊人。所以如果想设成系统级的热键。我们就很难保证不与其它软件的热键冲突。
  一般的软件都是Ctrl+shift+....或是Ctrl+....或Win+....之类的。下面我们试着定义一个f+j的热键。就是同时按下f和j两个字母来触发事件。
  用RegisterHotKey是实现不了的。这里我们要用到的是一个Timer和一个GetKeyState()。
  实现原理很简单。设定一个Interval为1的Timer不停的检测用户是否按下预定的两个键。如果附合条件,则触发你要实现的功能。
  代码如下:
procedure TFrmMain.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval:=1;
  if (GetKeyState(Ord('F'))<0) and (GetKeyState(Ord('J'))<0) then
  Begin
    Inc(HotNum2);
    Lbl1.Caption:='你已按过'+IntToStr(HotNum2)+'次热键';
    Timer1.Interval:=100;      //延时,防止事件触发过快;
  End;
end;

  要说明的是Interval的设定。在Timer事件里如果触发了事件,那么一定要把Interval设定大一点。否则用户按下一次键一般会触发十次左右事件。具体情况可以在代码里将Interval行删掉试一下;
  E-Mail:tresss@sohu.com
  HomePage:http://tresss.com

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?