Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Keystrokes auch bei inaktivem Fenster empfangen

  Alt 9. Sep 2003, 11:33
Wenn es Dir um die Steuerung Deiner Anwendung durch Hotkeys geht, auch wenn diese nicht aktiv ist, dann ist die Funktion RegisterHotKey perfekt

Mal ein Beispiel. Neues Anwendung und neues Form, dann im Form-Create Ereignis folgenden Code einfügen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 1, MOD_CONTROL or MOD_SHIFT, Ord('A'));
  RegisterHotKey(Handle, 2, MOD_CONTROL or MOD_SHIFT, Ord('B'));
end;
Ausserdem die Klasse wie folgt erweitern

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ....
  private
    { Private declarations }
    procedure WMHOTKEY(var Msg: TWMHotKey); message WM_HOTKEY;
    ....
  public
    { Public declarations }
    ....
  end;

procedure TForm1.WMHOTKEY(var Msg: TWMHotKey);
begin
  Caption := DateTimeToStr(Now) + IntToStr(Msg.HotKey);
  case Msg.HotKey of
    1: begin
      ShowMessage('Aaaahh :-)');
    end;
    2: begin
      Close;
    end;
  else
    inherited;
  end;
end;
und die Hotkeys [Strg]+[Shift]+[A] und [Strg]+[Shift]+[B] testen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat