Delphi:如何定义热键?

比如我按Ctrl+Enter就等于点了button1 求源码
2025-03-30 16:21:12
推荐回答(2个)
回答1:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
protected
procedure hotykey(var msg:TMessage); message WM_HOTKEY;
end;

var
Form1: TForm1;
HotKey:Integer;

implementation

{$R *.DFM}

procedure TForm1.hotykey(var msg:TMessage);
begin
if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=13) then
begin
button1.click;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
HotKey:=GlobalAddAtom('HotKey');
RegisterHotKey(handle,HotKey,mod_control,13);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(handle,HotKey);
end;
end.

回答2:

RegisterHotKey这个函数就是定义热键的,拜托,看看winapi说明好不好。