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).