키 로크 이후 가상 키를 변경하려면 원시 입력을 사용하여 장치 정보를 가져 왔습니다. Actulay 나는 두 개의 키보드 (키보드와 바코드 스캐너)를 가지고 있으며, 원시 입력을 통해 키 스토크가 하나의 키 입력과 함께 제공 될 수 있습니다. 그러나 바코드 스캐너에서 온 가상 키를 변경해야합니다. 그것들을 "KeyChar = Convert.ToChar(0);"
으로 변경하면 어떻게 될까요?키로크 후 가상 키 변경 및 응용 프로그램에 보내기
답변
당신이 무엇을 요구하고 있는지, 정확한 환경인지 모르겠지만 Winforms를 사용하는 바코드 스캐너로 작업 해왔고, 스캔 한 텍스트를 먼저 가져와야한다는 내용이 있습니다. 그것을 양식에 보냅니다. 키 스트로크 캡처는 쉽지만 바코드 스캐너 나 키보드에서 키 스트로크가 있는지 어떻게 알 수 있습니까?
내가 사용한 트릭은 바코드 형식입니다. 그들은 보통 $와 같은 시작과 멈춤 기호를 가지고 있습니다. 스캐너를 사용하여 메모장에 무엇인가를 스캔하면 보게 될 것입니다.
그런 다음이 기호를 키 스트로크 캡처 시작 방법으로 사용하십시오. 그래서 매 $마다 다음 키 스트로크마다 캡쳐를 시작합니다. 다음 번에 캡쳐를 멈추고 해당 문자열을 가져 와서 원하는대로 할 수 있습니다. SendKeys를 사용하여 결과를 다시 폼에 저장하십시오 (적어도 시작/중지 기호를 제거했다고 가정).
참고 :이 코드는 code-xxx 바코드에서만 작동합니다. GTIN 표준의 경우 시작 또는 정지 신호를 사용하지 않아서 조금 더 까다 롭습니다.
PreProcessMessage을 덮어 쓰고 키보드 메시지를 처리하십시오.
어떻게 PreProcessMessage로 가상 키를 바꿀 수 있습니까? –
메시지에 대체하십시오 – jgauffin
thanks.can 당신이 그것을 설명합니다. 이 오른쪽 : if (m.Msg == WM_KEYDOWN) { m.WParam = (IntPtr) ((키) Convert.ToChar (65)); } return base.PreProcessMessage (ref m); –
- 1. 응용 프로그램에 키 누르기 보내기 응용 프로그램에 키 누르기 보내기
- 2. 프로그램에 마우스/키 이벤트 보내기
- 3. C#/NET에서 비활성 응용 프로그램에 키 보내기
- 4. 배경 응용 프로그램에 키 누르기 보내기
- 5. 에뮬레이트 된 콘솔 응용 프로그램에 반환 키 보내기
- 6. Python 비 액티브 응용 프로그램에 키 입력 보내기
- 7. 프로그래밍 방식으로 GLUT 응용 프로그램에 키 입력 보내기
- 8. 사용 안 함 Delphi를 사용하여 응용 프로그램에 키 누르기 보내기
- 9. 키 조합 후 기본 키 이벤트 변경
- 10. WCF 응용 프로그램에 인증 된 사용자 보내기
- 11. 백그라운드에서 C#를 사용하는 경우에도 프로그램에 키 입력 보내기 #
- 12. C에서 Java 응용 프로그램에 명령 보내기 #
- 13. 네트워크 (.Net)의 응용 프로그램에 메시지 보내기
- 14. 쉘 컨텍스트 메뉴로 응용 프로그램에 경로 보내기
- 15. 기본 키 변경 후 업데이트로 외래 키 리팩토링
- 16. 키 이벤트를 하위 창으로 보내기
- 17. 게임에 키 스트로크 보내기
- 18. jQuery.Trigger로 키 보내기/프린트하기
- 19. 보내기 키 입력
- 20. SendKeys 키 수정 자 보내기 및 끄기
- 21. 가상 키 누르기 C#
- 22. 웹 응용 프로그램에 자동으로 변경 사항 배포
- 23. ACTION_SHUTDOWN을받은 후 데이터 보내기
- 24. 오른쪽 화살표에 키 보내기
- 25. 키 입력을 TextBox로 보내기
- 26. jQuery : 키 입력 보내기
- 27. 기본 키 변경 외래 키 변경
- 28. 변경 가능 vs 병렬 응용 프로그램에 대해 변경 불가능
- 29. 전경 (예 : 최소화 된)에 있지 않은 응용 프로그램에 키 입력 보내기
- 30. 변경 키
알았어. 그런데 어떻게 바코드 스캐너의 입력을 다른 어플라이언스로 보내는 것을 멈출 수 있습니까? –
@raha 아 좋아, 스캐너와 다른 응용 프로그램 사이에서 스캔 한 데이터를 가로 채길 원한다는 것을 몰랐다. 스캐너가 자신의 응용 프로그램에 데이터를 전송했다고 가정했습니다. 아마도 다른 뭔가가 필요할 것입니다. –
@ Kristoffer Jansson : 도움을 주셔서 감사합니다. –