출처1 : http://www.crazymind.net/43
출처2 : http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
클리앙에서 딸래미한테 바코드 스캐너를 이용한 마트놀이를 만들어주는 아빠를 보았다.
그리고 또 하나!
클리앙 육아당 소모임에서 진짜적님이 후배 개발자를 치킨 5마리로 포섭하여 만든 마트놀이도 받아보았다.
시작을 알리는 글.
몇 번의 업데이트가 지나고 종료를 알리는 글(?)
왠지, 괜시리 나도 만들어 주고 싶더라.
우리집도 한빛, 한율이가 있는데!
클량에서 본 데모버전은 Windows Tab으로 터치를 구현한 것 같았다.
하지만 난 그런게 없다.
집에 놀고 있는 노트북으로 대신해야 할 것 같다.
우선 알리에서 바코드 스캐너를 샀다.
진짜적님이 사신 모델이란다. 13불인가 해서 그냥 샀다.
크리스마스 전에는 오겠지 @_@
그리고 바코드스캐너를 어떻게 구현하는지 찾아보니, 그냥 스캔하면 HID 장치로 입력한 것 마냥 KeyPress 이벤트가 주르르르륵~ 타고 가다가 마지막에 엔터를 탁! 쳐 주는 것 같더라.
근데 집에 있는 노트북으로 구현해야 하는 지라, 바코드 스캐너를 사용하면서 키보드를 누를 수 있더라.
또 하나 문제점은 입력 받은 키 값을 어디서 부터 어디까지 파싱해서 써야하는지도 헷갈렸다.
그리고 또 하나!
어느 콘트롤에 포커스가 있던지 스캐너를 사용한 입력이 되어야 할 것이었다.
모든 콘트롤에 이벤트를 다 넣어줄 순 없을 것 같았다.
그 와중, 여러개의 키보드를 가지고 있을 때 구분을 할 수 있다는 검색을 결과를 봤다.
아마도 RS232 방식이 아닌 USB 포트를 사용하는 바코드 스캐너는 대부분 이런 문제를 가지고 있는 것 같았고,
인터넷 검색 결과 역시 보통 POS 업계 종사하시는 분들일 듯한 느낌이 왔다.
여튼 서론이 길었다.
심플하게 소스로 봅시다.
원 출처 분은 Windows7 / VS2008 환경이었던 것 같다.
본인은 Windows10 / VS2012 환경이며, 아래 소스는 동작확인을 한 소스이다.
처음 소스코드를 받았는데, 동작을 안했던 것을 리플로 정리해주신 오상훈님께도 심심한 감사를 표한다.
추가로 진짜적님이 배포해 주신 파일 중에.
바코드 정리하신 파일입니다.
진짜적님 감사합니다.