2015-02-03 1 views
0

사용자가 바코드 스캐너에서 입력을 받아야하는 응용 프로그램을 개발 중입니다. 초 단위로 데이터를 스캔하여 반환하는 USB 유형입니다. 어떻게하면 USB 양식의 바코드 스캐너에서만 입력을 읽을 수 있도록 Windows 양식의 텍스트 상자를 제한 할 수 있습니까?

내가 많은 기술

으로 키보드 입력을 받고 막으려 내 텍스트 상자는 읽기 전용 그러나 독자로부터 입력을 가져 오지 못했습니다 제작

는 키 누르기 이벤트 그러나 바코드 판독기 실제로 키보드의 역할은 그래서 내가 할 수 couldnt는 관리 형

필요한 출력을 얻으려면

Windows Forms의 텍스트 상자에 입력을 제공하거나 특정 포트에서만 입력을 제공하는 것을 제한하는 특정 시간을 가진 사용자를 제한하는 방법이 있는지 알아야합니까?

나는 코드 128symbology을 사용하여 바코드를 생성합니다.

+0

안녕하세요. 왜 스캐너로부터 입력을 프로그램 적으로 읽은 다음에 읽기 전용'TextBox'의'Text' 속성을 설정할 수 없습니까? 당신은 어떻게 그것을 현재 묶는가? –

+0

한 가지 작업을 수행 할 수 있습니다. false로 설정 한 후 텍스트 상자에 usb 값을 전달하기 직전에 텍스트 상자 readonly 속성을 true로 설정합니다. – Gun

+1

관련 : http://stackoverflow.com/questions/3655023/how-do-i- USB에서 읽기 입력 장치 – MarkU

답변

2

관련 : CodeProject의에 How do I read input from a USB HID device?

관련 기사 : MSDN에 http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard

기사 : https://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx

이 가능한 중복처럼 보이지만 내가 죽은 링크를 방지하기 위해 여기에 요약 할 수 있습니다 :

바코드 스캐너가 HID 키보드로 작동하는 USB 장치임을 나타내므로 프로그램의 텍스트 상자에이 입력 장치 만의 입력을 허용하려면 장치의 경우 HID Raw Input 기술을 사용할 수 있습니다. 그러나 장치에서 원시 HID 보고서를 처리해야합니다.

초기화하는 동안 소프트웨어는 특정 최상위 레벨 수집 (TLC)이있는 HID 입력 장치에서 Raw Input을 등록합니다.

GetRawInputDeviceList을 사용하여 사용 가능한 원시 입력 장치를 열거하고 GetRawInputDeviceInfo을 사용하여 각 장치의 이름을 찾습니다. 이름 문자열 내에서 USB VID/PID 값을 일치시킬 수 있어야하므로 키 코드 메시지가 바코드 스캐너에서 제공되는지 여부를 식별 할 수 있습니다. 이 열거에서 발견 된 일치 장치 핸들 hDevice을 저장하십시오.

GetMessageGetRawInputData에 의해 WM_INPUT 메시지를 처리하도록 windowproc을 확장하고, 바코드 스캐너의 이전에 결정된 장치 핸들에 대한 원시 입력 핸들을 일치시켜 표준 키보드 메시지를 필터링 할 수 있습니다.

관련 문제