Q&A

  • [질문]usb 바코드 스캐너 입력을 체크해서 전용 프로그램을 활성화 하는 방법이 어떻게 하면 될까요?
고수님들의 조언 부탁드립니다.

현재 개발 할려고 하는 시스템이 기존 입장객을 체크하는 포스시스템이 윈xp기반의
전용 포스 프로그램이 작동하고 있습니다.
그런데 따로 바코드를 제시하는 손님을 체크하기 위해서
현재 사용중인 포스시스템에 따로 프로그램을 설치하고 입장하는 손님들이
바코드를 제시하면 바코드 스캐너를 이용해 읽고 나면 해당 값을 조회해
직원이 확인 하는 형태의 프로그램을 만들려고 하는데요..
여기서 문제가 항상 전용포스프로그램이 사용되어지다가
바코드 스캐너로 바코드를 읽는순간 다른 프로그램이 전면에 나오면서 정보를 보여줘야 하는데
어떤식으로 해결해야될지 감감합니다...

검색해보면서 키보드 훅킹을 응용하면 될까 고민하고 있는데요..

가르침 부탁드립니다.. 꾸벅
6  COMMENTS
  • Profile
    박홍재 2010.06.09 12:53
    일단 질문이 조금 이해가 되지 않아서..
    이미 포스시스템에서 입장객을 Check 하고 있다면 이미 Barcode Scanner를 사용중일 텐데요.
    Barcode의 Data 가 다른 형식이거나 아님 특정한 문자열이 Perfix 나 Surfix 로 출력되어 있지 않는한
    입력되는 Data가 동일한 형식이라면 현재 발행이 된 것인지 아니면 재 입장하는 것인지 받아들이는 프로그램에서 힘이 들텐데요?
    정확하게 님이 하시고자 하는 구조를 이해하기 힘드네요. 짧은 제 실력으로는....
    기존 프로그램에서 기능키를 하나 만들어 별도로 님이 만드신 프로그램을 Call 하고 Scan을 하시거나
    해야 할 거라 생각이 되어 지는데....
  • Profile
    이규하 2010.06.09 16:34
    바코드 리더를 RS-232C 타입으로 하시구요 ...

    RS-232C Component 하나 올리시고 ... 데이터 들어 올때, 화면을 위로 올리시면 될듯 합니다.

    Keyboard Wedge 타입의 바코드 리더는, Keyboard 치는 거랑 같기 때문에, 적절한 Event 가 없습니다. Keyboard Hooking 도, 특정 문자 열이 들오 올때 뿐이 없는데,

    RS-232C 형태의 바코드 리더는, Event 따기가 좋습니다.
  • Profile
    최선호 2010.06.09 22:36
    두분 관심 가져 주셔서 감사드립니다.
    이규하님 말씀하신 데로 한번 해봐야 겠습니다..
    그리고 박홍재님 제가 설명을 잘못해서..^^;;.. 기존 pos에서는 바코드를 사용하고 있지 않은상태구요
    현재 추가로 얹을려고 하는 프로그램만 바코드스캔을 사용하게 됩니다..
  • Profile
    박홍재 2010.06.10 08:51
    RS-232 바코드 리더의 경우 프로그램에서 신호를 주어야 읽을 수 있습니다. 따라서 실행하는 프로그램에서 신호를 주어야 읽을 수 있어서 아마 프로그램에서 컨트롤 하기 쉽습니다.
    USB타입은 Keyboard Wedge 타입과 동일하죠. 들어오는 신호를 일방적으로 받아들일 수 밖에 없습니다. 차라리 그렇다면 Scanner에 Perfix로 문자를 하나 지정을 하시고
    Window의 Message 체크해서 그 문자가 들어왔을때 본인 프로그램이 앞으로 나오도록 프로그램 하시는 것이 좋을 거 같은데요....
    기존 Scanner를 232로 바꾸는건 추후 Upgrade 시에 문제가 될 수도 있죠. 요즘 컴에 232가 잘 안나와요...조립이 아니면...그게 제 생각입니다. 도움이 되셨으면...
  • Profile
    박홍재 2010.06.10 08:56
    Scanner의 메뉴얼을 살펴 보시면 Data을 읽을때 앞이니 뒤쪽에 지정하는 문자를 Default로 출력되도록 만들수 있습니다. 따라서 기존 프로그램이 스케너를 쓰지 않는다면
    Scanner에 Prefix를 심어서 그문자열이 들어오는지 프로그램에서 Check 해서 들어왔다면 본인 프로그램을 화면에 Show 해 주면 될거 같은데....
  • Profile
    최선호 2010.06.11 00:03
    친절하고 자세한 설명 감사드립니다..
    • phono
      2010.06.20 20:08
      Lines.String.text 로 해보셨나요?
    • 통통만두
      2010.11.07 10:52
      흠.. 그냥 간단하게.. try Memo.Lines.BeginUpdate; finally Memo.Lines.EndUpdate; end; ...
    • 델코이
    • 2010.06.18 20:59
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.19 02:16
      그런 방법이 있을리가 있나요... 포기하세요.
    • 땅콩맨
      2010.06.19 06:17
      컴퓨터 학문중 '역공학(Reverse Engineering)' 이라는 것이 있습니다. 역공학을 공부하기 위해서는 Hex ...
    • 폐기처분中
      2010.06.24 22:49
      리버스 엔지니어링을 하면 어느 정도의 알고리즘은 뽑아 낼 수 있겠지만... 바이너리 파일을 완벽히 코...
    • 이규하
      2010.06.25 12:53
      혹시나 하고 찾아 봤는데. 아래의 싸이트를 참고 해 보세요. http://delphi.about.com/od/devutili...
    • 땅콩맨
      2010.07.04 04:53
      흠... 원본소스를 재생하는것은 있을수 없다라고 적혀있네요.. 폐기처분中님이 말씀하신 것처럼 처음부...
    • 최용일
      2010.06.17 21:14
      TStringGrid, TDBGrid
    • 이승규
      2010.06.17 23:56
      음~~ 어디서 구할수 있나요 ^^ 7.0버젼인뎅
    • 살며배우며
      2010.06.23 08:20
      TStringGrid은 Additional에 , TDBGrid는 DataControl 텝에 있습니다.
    • 아폴론
    • 2010.06.18 00:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 사우리
    • 2010.06.18 00:05
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이용벽
    • 2010.06.16 22:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.16 23:07
      다른것은 모르겠구 송신 무한루프가 두번째가 안되는 것은 정상적인 동작인데요... IsCancel이 첫번째 ...
    • 최용일
      2010.06.16 23:10
      첫번째 3-4초 후에 응답을 받는 부분은 실제로 서버에서 늦게 응답을 하는가 아님 클라이언트에서 늦게 ...
    • 이용벽
      2010.06.17 00:11
      감사합니다. 두번째 문제는 그런 원인이 있었군요. 해결되었습니다. 첫번째 문제는 주신 힌트를 기반...
    • 아폴론
    • 2010.06.16 20:22
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.16 21:27
      BDE대신에 ODBC나 ADO를 쓰면 크게 안 고치셔도 될 것 같은데요...
    • phono
      2010.06.16 22:20
      용일님 의견에 덧 붙히자면... dbExpress는 단방향 데이타 셋 입니다. 즉 DataSet을 스크롤시 next...
    • 이용벽
      2010.06.16 22:47
      InstallAware를 쓰려다가 BDE에 걸려서 안되고 있는데 ODBC나 ADO를 쓰면 InstallAware에서 문제없나요?
    • 최용일
      2010.06.17 04:32
      ODBC, ADO 다 지원하는 것으로 알고 있는데요...
    • 가을바람
      2010.06.19 23:28
      문득 옛날 회사에서 bde안쓰고 dbExpress썼다고 犬ㅈㄹ하던 한 인간이 생각나네요.. ㅎㅎ
    • 김민수
    • 2010.06.14 22:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.14 23:42
      StringGrid1.Row := StringGrid1.Row + 1; StringGrid1.Cells[StringGrid1.Row, 0] := '추가된 첫번째 ...
    • 최용일
      2010.06.14 21:37
      FindFirst/FindNext/FindClose함수로 폴더의 파일 목록을 읽어와서 그 수많큼 루프를 돌려서 업로드하는 ...
    • 김민수
      2010.06.14 22:08
      힌트 감사합니다! 큰 도움이 되었습니다.
    • 초빼이
    • 2010.06.14 06:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.14 10:06
      TFrm_Schedule생성할 때 Owner로 Self 즉, TFrm_Preview를 넣어주셨으니까 특정버튼의 OnClick이벤트에서...
    • 아폴론
    • 2010.06.12 23:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • phono
      2010.06.14 20:16
      일단 BDE는 64bit 지원이 안되는 것으로 알고 있구요.. 그래서 저는 BDE 문제 때문에 5~6년 전 부터 ...
    • 박홍재
      2010.06.15 13:05
      Del 2005를 사용하고 있고 예전 Del 7 인스톨러에서 만든 Setup Program을 돌려서 64bit 7에 설치를 했습...
    • 홍성락
      2010.06.12 00:48
      어! 이런게 있었군요. 주의해야겠네요. 그런데 일반적으로 화면 갭쳐시 PaintTo등의 단순한 함수보다도 ...
    • 미스터몽키
      2010.06.15 05:37
      이런 쉬운 방법이 있었군요 홍성락님 정말 감사합니다.
    • 김현철
    • 2010.06.10 19:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이윤도
      2010.06.10 23:28
      StrToIntDef 이나 StrToFloatDef 를 참조하세요!! ex) StrToIntDef(str, 0) <- Str이 정상적인 숫자...
    • 최선호
    • 2010.06.09 03:18
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 박홍재
      2010.06.09 12:53
      일단 질문이 조금 이해가 되지 않아서.. 이미 포스시스템에서 입장객을 Check 하고 있다면 이미 Barcode...
    • 이규하
      2010.06.09 16:34
      바코드 리더를 RS-232C 타입으로 하시구요 ... RS-232C Component 하나 올리시고 ... 데이터 들어 올...
    • 최선호
      2010.06.09 22:36
      두분 관심 가져 주셔서 감사드립니다. 이규하님 말씀하신 데로 한번 해봐야 겠습니다.. 그리고 박홍재...
    • 박홍재
      2010.06.10 08:51
      RS-232 바코드 리더의 경우 프로그램에서 신호를 주어야 읽을 수 있습니다. 따라서 실행하는 프로그램에...
    • 박홍재
      2010.06.10 08:56
      Scanner의 메뉴얼을 살펴 보시면 Data을 읽을때 앞이니 뒤쪽에 지정하는 문자를 Default로 출력되도록 만...
    • 최선호
      2010.06.11 00:03
      친절하고 자세한 설명 감사드립니다..