Beispielunit mit einem Memo auf der Form (HotKey ist STRG-Pfeiltaste runter):
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
procedure WMHotKey(
var Msg: TWMHotKey);
message WM_HOTKEY;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const MY_HOTKEY = WM_APP + 100;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(
Handle,MY_HOTKEY,MOD_CONTROL,VK_DOWN);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(
Handle,MY_HOTKEY);
end;
procedure TForm1.WMHotKey(
var Msg: TWMHotKey);
begin
if Msg.HotKey = MY_HOTKEY
then
Memo1.Lines.Add('
Hotkey empfangen');
Msg.Result := 1;
end;
end.
[edit] Das funktioniert natürlich nur, wenn der Hotkey nicht bereits anderweitig registriert ist, siehe
MSDN. [/edit]