mfc 키보드 입력 예제

나는 키보드 “쐐기”를 작성하려고 예를 들어 프로그래밍 자습서를 찾고 있었다. TRS-80 모델 100 을 직렬 포트를 통해 연결 하 고 키보드로 사용 하 고 싶습니다., 키보드의 느낌을 사랑 하기 때문에. 나는 하드웨어가 USB 키보드로 설정하는 M100을 해킹하고 싶지 않아, 나는 또한 원래 설계로 그것을 계속 사용하고 싶어하기 때문에, 키보드로 사용하지 않을 때. 기본적으로, 내 아이디어는 Windows 7 PC에 직렬 포트를 통해 키 입력을 전송 하는 M100에 간단한 터미널 에뮬레이터를 실행 하는 것입니다., 다음 PC 직렬 포트에서 해당 정보를 잡아 키 입력으로 입력 스트림에 삽입. 이 샘플 코드를 해당 목적에 맞게 조정할 수 있습니까, 아니면 완전히 잘못된 장소에서 찾고 있습니까? 키를 누르면 하드웨어에서 검색 코드를 생성합니다. 스캔 코드는 키보드마다 다르며 키업 및 키다운 이벤트에 대한 별도의 검색 코드가 있습니다. 당신은 거의 스캔 코드에 대해 걱정하지 않습니다. 키보드 드라이버는 스캔 코드를 가상 키 코드로 변환합니다. 가상 키 코드는 장치 독립적입니다. 모든 키보드에서 A 키를 누르면 동일한 가상 키 코드가 생성됩니다. GetKeyState 함수는 가상 키보드 상태를 보고하기 때문에 흥미롭습니다. 이 가상 상태는 메시지 큐의 내용을 기반으로 하며 큐에서 메시지를 제거할 때 업데이트됩니다. 프로그램에서 창 메시지를 처리하면서 GetKeyState는 각 메시지가 큐에 대기될 때 키보드의 스냅샷을 제공합니다.

예를 들어 큐의 마지막 메시지가 WM_LBUTTONDOWN인 경우 GetKeyState는 사용자가 마우스 단추를 클릭한 순간에 키보드 상태를 보고합니다. 위의 티모시 트린켓에 대한 제 답장을 보셨습니까? 나는 당신이 게임이나 키보드 입력에 대한 DirectInput을 사용하는 다른 무언가에 대한 입력을 시뮬레이션하려고하는 경우에 특히, 당신의 문제를 해결할 수 있습니다 같은 무언가가 생각. 가장 간단한 중 하나를 주셔서 감사합니다,그물에 오류 적은 예 는 예, 난 당신이 옳다고 생각합니다. 게임은 종종 DirectX를 통해 키보드 입력(게임 컨트롤러 및 기타 intput 장치의 입력과 함께)을 수신합니다. 특히 직접 입력 API를 통해 도착한다고 생각합니다. Xinput라는 최신 관련 Microsoft API도 있지만 키보드를 처리한다고 생각하지 않습니다. 일반 키보드 이벤트를 설정합니다. ip.type = 입력_키보드; ip.ki.wScan = 0; 키 ip.ki.time = 0에 대한 하드웨어 스캔 코드; ip.ki.dwExtraInfo = 0; GetKeyState는 메시지 큐를 기반으로 하므로 다른 프로그램으로 전송된 키보드 입력도 무시합니다. 사용자가 다른 프로그램으로 전환하는 경우 해당 프로그램으로 전송되는 모든 키 누는 GetKeyState에서 무시됩니다.

키보드의 즉각적인 물리적 상태를 알고 싶다면 GetAsyncKeyState라는 함수가 있습니다. 그러나 대부분의 UI 코드의 경우 올바른 함수는 GetKeyState입니다. 키보드 입력을 받는 창은 일반적으로 창의 클라이언트 영역에 사용자가 입력하는 문자를 표시합니다. 창은 다음 문자가 나타날 클라이언트 영역의 위치를 나타내기 위해 카를레를 사용해야 합니다. 또한 창은 키보드 포커스를 수신할 때 카릿을 만들고 표시해야 하며, 포커스를 잃을 때 는 카릿을 숨기고 파괴해야 합니다. 창은 WM_SETFOCUS 및 WM_KILLFOCUS 메시지 처리에서 이러한 작업을 수행할 수 있습니다. 케어에 대한 자세한 내용은 Carets를 참조하십시오. 여기에서 SendInput을 사용하여 DirectInput을 통해 키 입력을 시뮬레이션 할 수 있음을 시사하는 몇 가지 정보를 찾았지만 키에 대한 검색 코드를 사용해야합니다. 해당 페이지의 예제는 모두 C#에 있지만 위에서 찾은 정보를 사용하여 위의 C 예제를 적용하려고 했습니다. 여기 리눅스 컴퓨터에 있어, 그래서 다음을 확인할 수 없습니다., 하지만 난 이런 식으로 작동 할 수 있습니다 생각: 키보드 이벤트가 발생 하는 창의 개체 참조. 예를 들어 왼쪽 마우스 클릭 + ALT 키의 조합을 감지하는 방법을 고려합니다.

키-스트로크 메시지를 듣고 플래그를 저장하여 ALT 키의 상태를 추적할 수 있지만 GetKeyState는 문제를 저장합니다.

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.