如何注册多个系统热键

mp3aaa 2009-04-05 05:43:18
请问怎么注册多个系统热键呢?
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowei_001 2009-05-19
  • 打赏
  • 举报
回复

MOD_CONTROL

补充下:Ctrl + 你所设的键
如果不需要Ctrl可以把这里的MOD_CONTROL
换成0
xjl53423 2009-05-07
  • 打赏
  • 举报
回复
怎么注册多个系统热键
这一段代码,我要试试。
shaoyiping 2009-05-04
  • 打赏
  • 举报
回复
其他同上
procedure TForm2.FormCreate(Sender: TObject);

begin
vID := GlobalAddAtom('Ctrl+Enter');
RegisterHotKey(Handle,1,MOD_CONTROL,65);
RegisterHotKey(Handle,2,MOD_CONTROL,66);
RegisterHotKey(Handle,3,MOD_CONTROL,67);
end;




//在判断msg.XX 判断哪个
procedure TForm2.MyHotkey(var msg: Tmessage);
begin
if msg.WParam = 1 then ShowMessage('hehe') **
if msg.WParam = 2 then ShowMessage('hehe')

end;



starluck 2009-04-05
  • 打赏
  • 举报
回复


unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
procedure MyHotkey(var msg:Tmessage);message wm_hotkey ;
end;

var
Form2: TForm2;
vID : integer;
implementation

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle,vID);
GlobalDeleteAtom(vID);
end;

procedure TForm2.FormCreate(Sender: TObject);

begin
vID := GlobalAddAtom('Ctrl+Enter');
RegisterHotKey(Handle,vID,MOD_CONTROL,VK_RETURN);
end;

procedure TForm2.MyHotkey(var msg: Tmessage);
begin
if msg.WParam = vID then ShowMessage('hehe') ;


end;

end.



参看我写的这段代码。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧