Einzelnen Beitrag anzeigen

Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#3

Re: Absolut jeden Tastendruck empfangen

  Alt 8. Jun 2005, 09:48
Zitat von Olli:
Zitat von Cicaro:
Wie kann ich in meinem Formular, das den Focus NICHT hat, weil es beispielsweise minimiert wurde, erkennen, ob eine Taste gedrückt wurde (Tastatur und/oder Maus) ? Es soll also auf Tastendruck in fremden Formularen oder auf dem Desktop reagieren können.
Mit globalen Hooks kannst du auch auf anderen Forms Eingaben abfangen (und ggf. weiterleiten).
In Screen, Mouse und Application hab ich auch schon nach passenden Methoden gesucht.

Zitat von Olli:
Zitat von Cicaro:
Mit GetKeyboardState scheint das nicht zu funktionieren. Gibt es andere Möglichkeiten ?
S.o.
Aber was ist das Ziel? Vielleicht geht's auch ganz anders?!
Meine Strategie mit GetKeyboardState war, dass ich 'nen Timer am Laufen hatte, in desses Ereignisprozedur ich diese Funktion aufgerufen hab'. Einen Tastendruck konnte ich nur feststellen, solange das Formular den Focus besaß.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender:TObject);
begin
  Beep;
  GetKeyboardState(...);
  // usw.
end;
Den Ton höre ich in jeder Lage des Formulars, den Tastendruck kann ich im Fall ganz oben nicht empfangen. Wahrscheinlich ermittelt GetKeyboardState nur Tastendruck, der für das Formular selbst bestimmt war.

Ziel des ganzen ist, dass ich bei jedem Tastendruck, der während der Arbeit am PC gemacht wird, einen kleinen Prozess durchführe.
  Mit Zitat antworten Zitat