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.