Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Den Focus in Edit-Feld immer setzen? Modales Dialogfeld?

  Alt 23. Jun 2007, 07:14
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat