none
Diferenciar cuando una entrada se hacer por el teclado o por el codigo de barra RRS feed

  • Pregunta

  • Estoy relizando una aplicacion, en la cual necesito saber cuando los datos de entrada vinieron de el lector de codigo de barras o si bien lo hicieron desde el teclado, se que el lector se comporta como si fuese el teclado, pero me preguntaba si habría alguna manera de diferencialos, estoy usando C#
    viernes, 29 de agosto de 2014 16:36

Respuestas

  • Si es un lector de los que inyectan los caracteres como si se hubiesen escrito en el teclado, entonces desde el puunto de vista del programa no se puede distinguir si fue el teclado o el lector.

    Pero hay un truco, que consiste en examinar la temporización de los caracteres. Es decir, si se escribe a mano, la velocidad es relativamente lenta e irregular, mientras que si los caracteres provienen de un lector se reciben seguidos a toda velocidad. Si están entrando en un TextBox, puedes interceptar el evento Change (o el KeyPress) y con un poco de habilidad registrar en un array la hora, minutos, segundos y milisegundos en que se recibió cada carácter. Después puedes calcular las diferencias entre ellos y aplicar un poco de estadística para calcular el tiempo medio y/o la desviación típica. Esto te permitirá deducir si vinieron del lector (tiempo pequeño y desviación pequeña).

    viernes, 29 de agosto de 2014 20:07
    Moderador