Domanda

Non riesco a trovare un modo per catturare l'ingresso di un lettore di schede magnetiche. Quando scorre, l'input entra in un editor di testo attivo, come dire un blocco note.

Sfortunatamente, l'attenzione sul campo della casella di testo non farà il trucco, perché sono necessario per renderlo un'etichetta anziché una casella di testo. Pertanto, ho bisogno di un modo per catturare l'input dal dispositivo USB a una variabile o etichetta.

Qualcuno sa di una classe .NET che potrei usare per fare questo o qualche idea migliore?

È stato utile?

Soluzione

Non credo che ci sarà comunque per impedire all'utente di input manuali. Sospetto che il lettore di carte abbia emula una tastiera. Quindi, per poter leggere dal lettore, è necessario ricevere l'input della tastiera e l'input della tastiera significa che l'utente può digitare tutto ciò che piace.

Una possibile soluzione è quella di cambiare il lettore della scheda in uno che utilizza un'API per leggere dalle carte.

Se ottenere un lettore di carte migliori non è un'opzione, penso che il metodo migliore per farlo sia avere un pulsante. Quando si fa clic sul pulsante, apri un nuovo modulo che contiene il codice @Bala R fornito. Ma inoltre, chiudi il modulo entro 1 secondo dal primo input chiave. Ciò impedirà agli utenti di manomettere manualmente l'input, ma fornirà tempo sufficiente per il completamento del lettore.

Altri suggerimenti

Se si tratta di un'app di Winforms, potresti fare

    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;
        }
    }

E fintanto che la finestra ha il focus, i caratteri di keypress andranno al testo dell'etichetta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top