Según veo, las formas desde donde estás 'cachando' la tecla pulsada son distintas y, a menos que FVentas sea MDI Child de Form1 no deberían ser procesos concurrentes.
El problema, seguramente, está en la comunicación con tu puerto Lpt1. Ahora, creo que también deberías prestar atención a donde pones tu procedimiento de abrircajon. Según entiendo debe estar dentro del if y no antes de él. Esto por que cada vez que pulses un botón tratará de abrir el cajón, lo cual podría estar haciendo que a cada rato se quiera abrir, con su fallo normal.
Espero que esto te ayude a seguir buscando el problema.
Saludos.