2013-10-06 2 views
-3

카드 리더기에서 백그라운드로 실행할 창 서비스를 구축하려고하는데 카드의 데이터를 텍스트 상자에서 가져옵니다. 내 질문 : 누군가가 카드 판독기에서 카드를 스 와이프하면 WINFORM은 텍스트 상자에서 카드의 데이터를 가져와야합니다. 이것을 어떻게 할 수 있습니까?카드 스 와이프 기계에서 카드를 스 와이프 할 때 WINFORM을 실행하는 방법

또는

하나는 카드 와이프, 즉도

+2

귀하의 질문은 매우 모호합니다. 출석 소프트웨어를 작성한 경우 간단하게 수정하여 스 와이프 된 카드 정보를 표시하십시오. 그렇지 않은 경우 해당 소프트웨어의 작동 방식을 지정해야하며 해당 정보를 해당 응용 프로그램으로 전달하는 방식으로 작동해야합니다. –

답변

1

Windows 서비스가 어떤 종류를 표시 안된다

감사를 작동 할 때 방법의 WinForm을 실행하기 위해 단지 것을 말해 줄 수 경우 사용자에게 UI를 제공하지 않으면 사용자로부터 아무 입력도받지 않고 출력이나 상태를 표시하지 않는 완전한 백그라운드 작업으로 실행됩니다. 서비스를 사용자와 "대화"해야한다면 정상적인 방법은 두 가지 다른 프로그램으로 프로젝트를 분할하는 것입니다. 하나는 서비스 자체로서 백그라운드 처리를 수행하는 UI가없는 것이며 일반적인 사용자 응용 프로그램 , 아마도 로그인에서 실행, 알림을 보여주고 서비스와 통신합니다. 또한 서비스가 로그 오프 및 로그온에서 살아남을 수 있으며 주어진 시간에 많은 사용자가 로그온 할 수 있으므로 누구에게나 대화 상자를 표시하는 것은 의미가 없습니다.

내 제안은 서비스가 정상적인 프로그램으로 바뀌고, 설치 프로그램이 시작할 때 실행되도록 구성하고 카드 판독기를 모니터링하고 사용자에게 세부 정보를 묻는 팝업을 표시하는 것입니다. 모니터링 이외의 배경 작업은 없으므로 양식이 절대적으로 필요하면 로그인 한 사용자없이 모니터링하는 것이 의미가 없으므로 서비스가 최선의 선택이라고 생각하지 않습니다.

0

내가 카드 리더의 두 가지 유형을 보았다 :

1 - 키보드 포트에 연결하고 키보드의 역할 (또한 USB 포트에 연결할 수 있습니다,하지만 여전히 키보드를 시뮬레이션). 카드가 스 와이프되면 정보는 현재 응용 프로그램과 텍스트 필드에 기록됩니다.

2 - 일종의 하드웨어 드라이버 (대부분 USB 드라이버, 가능하면 직렬 또는 기타)가 있습니다.

메모장을 열었는지 잘 모르겠 으면 메모지에 포커스가 있는지 확인한 다음 카드를 스 와이프합니다. 메모장에 세부 정보가 표시되면 1 위가됩니다. 만약 그렇지 않다면, 아마 # 2를 가지고있을 것입니다.

독자가 # 1이면 TextBox의 TextChanged 이벤트에 코드를 넣어 필요한 것을 할 수 있습니다 (응용 프로그램에 코드를 추가 할 수 있다고 생각합니다. 당신이 그것을 짓고 있다고 말했다).

리더가 # 2이면 실제로 사용하는 드라이버에 따라 다릅니다. 일부는 통합 할 수있는 API를 제공하지만 문서를 찾아야합니다.

카드 판독기의 모델 번호 및 제조업체가 있습니까?

+0

제조업체 : MagTek 모델 번호 : 21040145. # 1에서와 똑같은 작업을 수행했는데,이를 위해 카드의 데이터를 가져올 앱을 열어야합니다. 그러나 여기에 어떤 앱을 열지 않고도 데이터를 가져와야합니다. 그것은 성취 할 수 있습니까? – user2454135

+0

시스템 전체 키보드 후크를 시도 할 수 있습니다. 다음은 C#에서 구현하는 방법에 대한 기사입니다. http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx. 그러나 보안 때문에 윈도우 서비스에서 작동하지 않습니다 : http://social.msdn.microsoft.com/Forums/vstudio/ko-US/00590009-b118-4489-9347-02b5f734d219/using-hooks-in-windows-service? forum = csharpgeneral. WinForms 앱으로 앱을 만들고 자동 시작되도록 구성하는 것이 좋습니까? 작업 표시 줄의 알림 영역에서 실행할 수 있습니다. – Zippit