看流星社区

 找回密码
 注册账号
查看: 2974|回复: 2

[Delphi] 请问delphi如何注册多个热键?

[复制链接]

该用户从未签到

发表于 2011-3-29 09:17:44 | 显示全部楼层 |阅读模式
我的代码如下。
  1. unit Unit1;

  2. interface

  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, IniFiles, StdCtrls, ComCtrls, Spin,ShellApi;
  6. const  NOTIFYEVENT  =  WM_USER  +  100;
  7. type
  8.   TForm1 = class(TForm)
  9.     HotKey0: THotKey;
  10.     HotKey1: THotKey;
  11.     HotKey2: THotKey;
  12.     procedure FormCreate(Sender: TObject);
  13.   private
  14.     { Private declarations }
  15.       aatom:atom;
  16.       abcd:atom;
  17.   procedure hotkey(var msg:tmessage);
  18.   message wm_hotkey;
  19.   public
  20.     { Public declarations }
  21.   end;

  22. var
  23.   Form1: TForm1;
  24.     MyHwnd:hwnd;//窗口
  25. implementation

  26. {$R *.dfm}

  27. procedure TForm1.FormCreate(Sender: TObject);
  28.   var
  29.   myhot:string;
  30. begin
  31.   RegisterHotKey(handle,aatom,MOD_ALT,VK_F10); //注册热键ALT-F10
  32.   //RegisterHotKey(handle,abcd,MOD_ALT,VK_F11);
  33. end;
  34.   procedure TForm1.hotkey(var msg:tmessage);

  35.   begin
  36.   if (msg.LParamHi=VK_F10) and (msg.LParamLo=MOD_ALT) then
  37.     begin
  38.       MyHwnd:=GetForegroundwindow;      //这里是不是获取热键Alt+F10按下后的当前窗口的句柄呢?
  39.           begin
  40.               SetForegroundWindow(handle);
  41.               messagebox(handle,'你已经按下热键Alt+F10','成功', MB_OK);
  42.           end;
  43.     end;
  44.   if (msg.LParamHi=VK_F11) and (msg.LParamLo=MOD_ALT) then
  45.       SetForegroundWindow(handle);
  46.       messagebox(handle,'你已经按下热键Alt+F11','成功', MB_OK);
  47.     end;

  48. end.
复制代码

该用户从未签到

发表于 2011-3-29 09:18:19 | 显示全部楼层
你的原子aatom、abcd还需要注册
aatom:=globaladdatom('原子唯一识别码字符串'); //每个注册的热键的原子必须不同

关闭辅助时必须注销原子和热键
  UnregisterHotKey(handle,aatom);
  globalDeleteatom(aatom);

该用户从未签到

发表于 2011-3-29 09:18:41 | 显示全部楼层
不错,学习一下,利用多原子实现多热键
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-29 22:54

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表