Yo pienso una posible solución, es hacer un Hook para el teclado, y la única distinción entre el ingreso por teclado por parte del usuario, respecto del enviado por el lector, es la velocidad, claro está, mucho más rápida esta última.
Con respecto a acceder directamente al puerto, (0x060) tiene el conflicto de necesitar establecerse por driver, a nivel del kernel, ya que XP no lo permite de otra forma, y habría que convertir la data binaria al formato que quieras.
Yo particularme prefiero el método mediante un Hook, tipo TKeyboardHook, ya que todos los lectores CCD, tienen la carecterística de definir el caracter terminal, pudiendose utilizar éste para la distinción usuario/lector.
Los lectores que emulan teclado son los más económicos, pero tienen sus limitaciones. Fueron creados con el fin de satisfacer terminales TPV, donde la mayoría de los casos, por no decir todos, siempre tienen un elemento con el foco, como en tu caso, un TEdit.
Saludos
__________________
Código Delphi [-]
try
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
|