Pregunta

Parece que no puedo encontrar una manera de detectar la entrada de un lector de tarjetas magnéticas. Cuando desliza, la entrada entra en activo el editor de texto, como decir un bloc de notas.

Desafortunadamente, el campo de enfoque en el cuadro de texto no hará el truco, porque debo convertirlo en una etiqueta en lugar de un cuadro de texto. Por lo tanto, necesito una forma de atrapar la entrada del dispositivo USB a una variable o etiqueta.

¿Alguien sabe de una clase de .NET que podría usar para hacer esto o mejores ideas?

¿Fue útil?

Solución

No creo que haya de todos modos que evite que el usuario la entrada manual. Sospecho que el lector de tarjetas que ha emulado un teclado. Por lo tanto, para poder leer del lector, debe recibir la entrada del teclado, y la entrada del teclado significa que el usuario puede escribir lo que quiera.

Una posible solución es cambiar su lector de tarjetas a uno que use una API para leer de las tarjetas.

Si obtener un mejor lector de tarjetas no es una opción, creo que el mejor método para hacerlo es tener un botón. Cuando se haga clic en el botón, abra un nuevo formulario que contiene el código @bala R proporcionado. Pero además, cierre el formulario dentro de 1 segundo desde la primera entrada clave. Esto evitará que los usuarios manifiesten la entrada manualmente, pero proporcionarán tiempo suficiente para que el lector complete.

Otros consejos

Si es una aplicación WinForms que podría hacer

    private void Form1_Load(object sender, EventArgs e)
    {
        KeyPreview = true;
        KeyPress += Form1_KeyPress;
    }

    private bool inputToLabel = true;
    void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (inputToLabel)
        {
            label1.Text = label1.Text + e.KeyChar;
            e.Handled = true;
        }
        else
        {
            e.Handled = false;
        }
    }

Y mientras la ventana tenga enfoque, los caracteres KeyPress irán al texto de la etiqueta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top