Einzelnen Beitrag anzeigen

Destroyer446

Registriert seit: 17. Jan 2011
67 Beiträge
 
#15

AW: Alle Systemweiten Eingaben abfragen

  Alt 25. Jun 2012, 11:59
So, ich habs jetzt mal auf einem anderen Weg versucht, nur bekomme ich hier immer EStackOverflow Error (nach 10s).
Mein Code (eigene Unit):
Delphi-Quellcode:
unit GlobalPressedKey;

interface

uses Windows, ExtCtrls, Classes;

type
  TGlobalPressedKey = class(TObject)
  private
    KeyTimer: TTimer;
    procedure KeyTimerOnTimer(Sender: TObject);
    function GetPressedKey: Integer;
    procedure SetPressedKey(Key: Integer);
  public
    constructor Create(AOwner: TComponent; AIntervalKeyCheck: Integer = 10);
    property PressedKey: Integer read GetPressedKey write SetPressedKey default 0;
    destructor Free;
  end;

implementation

constructor TGlobalPressedKey.Create(AOwner: TComponent; AIntervalKeyCheck: Integer = 10);
begin
 KeyTimer := TTimer.Create(AOwner);
 KeyTimer.Interval := AIntervalKeyCheck;
 KeyTimer.OnTimer := KeyTimerOnTimer;
end;

procedure TGlobalPressedKey.KeyTimerOnTimer(Sender: TObject);
var
 i: Integer;
begin
 For i := 1 to 300 do
  If GetAsyncKeyState(i) and 1 <> 0 then
  begin
   SetPressedKey(i);
   Exit;
  end;
 SetPressedKey(0);
end;

procedure TGlobalPressedKey.SetPressedKey(Key: Integer);
begin
 PressedKey := Key; // Markiert wird immer diese Zeile aber naja.... es liegt doch irgendwie am Timer oder?
end;

function TGlobalPressedKey.GetPressedKey: Integer;
begin
 Result := PressedKey;
end;

destructor TGlobalPressedKey.Free;
begin
 KeyTimer.Free;
end;

end.
Mfg
  Mit Zitat antworten Zitat