Einzelnen Beitrag anzeigen

Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 

Hot-Keys systemweit setzen und verwenden

  Alt 7. Okt 2006, 14:20
Hallo!

Heiße Tasten - Aus einer Frage heraus habe ich festgestellt, das es hier noch kein Beispiel für Systemweite Hot-Key's gibt.
Also wird's Zeit dafür

Delphi-Quellcode:
///////////////////////////////////////////
// Beispiel: Shift F1 als Hot-Key setzen //
///////////////////////////////////////////

// Infos zu den Paramater
// MOD_ALT ALT muß gedrückt sein
// MOD_CONTROL CTRL muß gedrückt sein
// MOD_SHIFT SHIFT muß gedrückt sein
// MOD_WIN WINDOWS-Taste muß gedrückt sein

unit HotKeyForm;

interface

uses
  ...

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender:TObject);
  private
    { Private-Deklarationen }
    HotKeySet:Boolean;
  protected
    { Protected-Deklarationen }
    procedure WMHotKey(var Message:TMessage); message WM_HOTKEY;
    ...
  end;

var
  Form1: TForm1;

implementation

{$*.dfm}

const
  HotKeyID=1;
 
procedure TForm1.FormCreate(Sender:TObject);
begin
   HotKeySet:=RegisterHotKey(Self.Handle, HotKeyID, MOD_SHIFT, VK_F1);
   If not HotKeySet then
      ShowMessage('Hot-Key konnte nicht gesetzt werden:'#13+SysErrorMessage(GetLastError));
end;

procedure TForm1.FormDestroy(Sender:TObject);
begin
   // Nur UnregisterHotKey aufrufen wenn HotKeySet True ist!
   If HotKeySet then // <- Und den Fehler hat keiner gesehen :) Da war ein not drin
      UnRegisterHotKey(Self.Handle, HotKeyID);
end;

procedure TForm1.WMHotKey(var Message:TMessage);
begin
   If Message.wParam=HotKeyID then
      ShowMessage('Hot-Key "Shift F1" funktioniert!');
end;
Aber nicht das Ihr jetzt alle Programme mit Sinnlosen Hot-Key's zupflanzt

Stichwort für Suche: Globale Hotkeys

[edit=CalganX]Titel, Klassifizierung. Mfg, CalganX[/edit]
[edit=SirThornberry]Stichwort auf Wunsch hinzugefügt - Mfg, SirThornberry[/edit]
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat