Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#6
  Alt 18. Jun 2003, 21:27
Diesen Code verwendet dadu um rauszufinden, ob und wenn ja welche Taste (in diesem Code erstmal nur Buchstaben) gedrückt wurde:

Delphi-Quellcode:
  //65 - 96 = Chars A- '
  for i := 65 to 96 do
    //Wenn eine Taste gedrückt wird
    if (GetasyncKeyState(word(i)) <> 0) then
      str := str + char(i);
Das Ganze hat er in einen Timer gesetzt, damit man alles mitbekommt.
Gibts halt nur das Problem, dass man wenn man den Timer z.B. auf 10ms stellt, das Programm dann glaubt eine Taste (die man halt nur etwas länger gedrückt hat, aber trotzdem nur einen Buchstaben geschrieben hat) wäre häufiger als 1 Mal gedrückt worden.
Wenn man den Timer dann aber zu langsam einstellt (z.B. 100ms), werden manche Tasten nicht empfangen weil sie außerhalb des Intervalls gedrückt werden.
Da man ja nicht immer in selben Abständen beim Tippen Tasten betätigt, ist es mit einem Timer nicht sicher möglich, jeden Tastendruck zu erwischen.
Und deshalb frag ich mich halt, obs irgendeine Art systemweite Message gibt, die bei einem Tastendruck ausgelöst wird.
Baut man dann oben Code in eine Ereignisbehandlung für so eine Message ein, hat man wohl eine bessere Trefferquote.
Son Programm würd mich nämlich auch mal interessieren, aber wenn das Programm manchmal meine Abkürzungen nich erwischt, dann bringts mir ja auch nix...

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat