rfid 카드를 통해 사용자를 인증해야하는 Visual C# 2015에서 프로그램을 개발 중입니다. 내가 사용하고있는 장치는 단순히 키보드를 에뮬레이트합니다. 메모장을 연 다음 리더기 근처에서 태그 나 카드를 스 와이프하면 대부분의 바코드 리더가 작동하는 것처럼 일련 번호 + 입력을 받게됩니다. 필자는 분명히 사용자가 코드를 보거나 텍스트 상자에 입력 할 수 없게하기 위해 KeyDown 이벤트를 사용하여 모든 문자를 입력하는 것으로 인증시 "해당 키보드"의 입력을 잡는 것이 좋습니다. 버퍼 변수에 넣은 다음 엔터를 누를 때 (즉, 코드의 끝) 데이터베이스와 대조하여 확인하십시오.RFID 카드를 읽는 동안 Visual C# 키 탐지 변형 (D 문자가 추가됨)
문제는 말하자면 카드가 12345678로 표시되었다는 것입니다. 이것은 메모장이나 텍스트 상자에 표시됩니다. 그러나 버퍼를 표시하면 "D1D2D3D4D5D6D7D8"이됩니다. 데이터베이스의 각 문자 앞에 D를 추가하여 문제를 간단히 피할 수는 있지만 실제로 이런 일이 발생하는지 이해하고 싶습니다. 코딩의 문제인가, 아니면 keydown 이벤트가 서로 너무 가깝습니까? 아무도 단서가 있습니까? 주셔서 감사합니다
편집 :
다음코드입니다 :
XAML은
<Window x:Class="myApp.MainWindow"
(...)
KeyDown="OnKeyDownHandler">
C#
당신에게 실제 키를주고있다 KeyDown 이벤트를 누르면되고private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
if (!authenticated) {
if (e.Key != Key.Enter)
{
cardReadBuffer += e.Key;
}
else
{
//this returns every character preceded by a D; doesn't happen
//if I type some characters on my keyboard and then press enter
MessageBox.Show(cardReadBuffer);
cardReadBuffer = "";
}
}
}
'그러나 버퍼를 표시 할 때 ... '이것이 우리에게 보여줘야하는 코드입니다. – LarsTech