Ich schreibe ein kleines Tool in VC++, um Tastenanschläge aufzuzeichnen und später wiederzugeben, einen Makro-Rekorder. Es funktioniert schon ganz gut, mit einer Tastatur-Hook-Funktion, die jeden einzelnen Tastendruck und jedes Loslass-Ereignis liest. Die Wiedergabe funktioniert mit der SendInput()-Funktion und funktioniert im Allgemeinen auch gut - außer bei sich wiederholenden Tastenanschlägen. Eine Taste mehrmals zu drücken, nachdem sie jedes Mal losgelassen wurde, ist kein Problem. Aber das Drücken und Halten einer Taste, um das Eingabezeichen zu wiederholen, kann zwar aufgezeichnet, aber nur in einigen Anwendungen wiedergegeben werden. Einige akzeptieren und geben das Zeichen mehrfach ein, andere nur einmal. (Es ist reproduzierbar, wer was tut.) Der Makrorecorder selbst sieht über seinen Überwachungshaken auch die nur einmal gedrückte Taste bei der Wiedergabe.
Wie kann ich also SendInput dazu bringen, mehrere aufeinanderfolgende Tastenanschläge einer einzigen Taste zu senden, ohne dazwischen selbst Ereignisse zum Loslassen von Tasten hinzuzufügen? Das Senden einer Sequenz von [drücken] [drücken] [drücken] ... [loslassen] funktioniert nicht immer.