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