Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#11

AW: Tastaturhook auf Bildschirmschoner

  Alt 18. Jun 2012, 09:37
Hallo,

musst Du eine bestimmte oder eine definierbare Taste abfangen?

Wenn nein, dann ist die zu nutzende Taste die Drucktaste. Hier reagieren die Bildschirmschoner auf meinem Rechner nicht (und da bin ich optimistisch, dass das überall so ist).

Mit folgendem Code kann ein Programm den Tastendruck abfangen und eine Datei schreiben.
Delphi-Quellcode:
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);
  private
    { Private-Deklarationen }
  protected
    procedure WMHotKey(var Message: TWMHotKey); message WM_HOTKEY;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMHotKey(var Message: TWMHotKey);
Var
  sl : TStringList;
begin
  if Message.HotKey = VK_SNAPSHOT then begin
    // Hier die gewünschte Aktion ausführen
    sl := TStringList.Create;
    sl.Text := DateTimeToStr(now);
    sl.SaveToFile('c:\temp\xxxxx.xxx');
    sl.Free;;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, VK_SNAPSHOT { Any unused number}, 0, VK_SNAPSHOT);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, VK_SNAPSHOT);
end;

end.
Probiere mal bitte aus, ob ein Dienst das auch mitbekommt, wenn ja, solltest Du anstelle des Schreibens einer Datei auch beliebige andere Aktionen ausführen können.

Geändert von nahpets (18. Jun 2012 um 09:51 Uhr) Grund: Quelltext so angepasst, dass explizit auf die Drucktaste abgefragt wird (für den Fall, dass mehrere Hotkey im System registir
  Mit Zitat antworten Zitat