Entwickler-Ecke

Windows API - Tastendruck bemerken


Yoda2003 - Mo 17.11.08 22:49
Titel: Tastendruck bemerken
Hallo,

ich habe vor, bzw. ist es sogar schon gelungen, einen Trainer für Spiele zu erstellen.
Das aber nur nebenbei.

Mein einziges Problem besteht eigetnlich nur noch darin, dass dieser "Trainer" im Hintergrund laufen soll und erst auf Tastendruck (z.B. nach dem Drücken der Taste F1) eine bestimmte Funktion ausführen soll.

Das Problem ist, dass das Programm nicht immer im Vordergrund läuft.

Wie bekomm ich das hin?

Eine Möglichkeit sind ja bekanntlich Hooks. Aber dazu bräuchte ich ja immer eine dll-Datei und schaut man sich mal andere Trainer an, so bestehen die auch nur aus einer einzigen exe Datei.

Also wenn ihr einen Vorschlag habt, vielleicht sogar ein Codebeispiel wäre ich euch sehr dankbar.

mfg
Yoda2003


turboPASCAL - Mo 17.11.08 22:53

Ist ein Crosspost gelle !? [http://www.delphipraxis.net/post965874.html#965874]


Yogu - Mo 17.11.08 22:55

user profile iconYoda2003 hat folgendes geschrieben Zum zitierten Posting springen:
Eine Möglichkeit sind ja bekanntlich Hooks. Aber dazu bräuchte ich ja immer eine dll-Datei und schaut man sich mal andere Trainer an, so bestehen die auch nur aus einer einzigen exe Datei.

Wenn die DLL das Problem ist, verwende doch einfach Suche in der Entwickler-Ecke RESSOURCEN. Du kannst die DLL zur Laufzeit auspacken und den Hook setzen.

Aber theoretisch könntest du auch in einem bestimmten Intervall prüfen, ob die Taste gerade gedrückt ist. Dazu schreibst du in ein Timer-Event:


Delphi-Quelltext
1:
2:
if GetAsyncKeystate(VK_F1) <> 0 then
  { ... }

Ob die Konstante VK_F1 stimmt, weiß ich gerade nicht. Falls es die nicht gibt, schau in der Delphi-Hilfe nach :idea:


turboPASCAL - Mo 17.11.08 22:57

VK_F1 gibt es. ;)

Man sollte aber eine Taste wählen die in diesem Game nicht belegt ist. Das gibt sonst Kuddelmuddel...


Yoda2003 - Mo 17.11.08 23:11

Vielen Dank für die schnelle Hilfe, so gehts ;)