Ich habe mal für soetwas (Scanner-Eingabe unabhängig von der aktiven Anwendung) einen KeyLogger schreiben müssen. Die meisten Scanner schicken nicht nur den Barcode als Tastendrücke, sondern auch einige Key-Up / Key Down Ereignisse, die auf einer Tastatur nicht zu simulieren sind (z.B. 2x KeyUp hintereinander. Geht ja mit ner Tastatur nicht, weil die Taste auch losgelassen werden muss).
Der KeyLogger (
DLL) macht normalerweise nix. Wenn die o.g. Sequenz kommt, schickt er alle Keyboard-Events zu der angemeldeten Applikation, bis die 'End-Scan' Sequenz erkannt wird, oder ein CR (#13).
Bei Scannern kann man auf jeden Fall ein Terminator-Symbol angeben (z.B. #13 oder #9), sodaß ein RETURN oder TAB simuliert werden kann.
Wenn deine Anwendung sowieso nur einen Scan erwartet, dann kannst Du auf die Analyse verzichten, und einfach einen profanen KeyLogger installieren.
Nachteil: Die
DLL wird von allen Virenscannern als Schadsoftware erkannt.
@dajuhsa: Wenn die Anwendung den Focus verliert (weil eben ein anderes Programm gestartet wurde), dann klappt das eben nicht.
Soweit ich mich erinnere, habe ich das aber mit einer anderen Anwendung hinbekommen (1x pro Sekunde 'SetWindowPos' ausgeführt). Die genauen Parameter sind im Link von marabu zu finden.