|
여러가지 방법이 있는데..
요즘은 전혀 쓸일이 없어서.. 기억이 잘 나지 않습니다.
1. Keyboard buffer의 address를 직접 지정해서 읽어오는 방식
2. bioskey를 이용하는 방법
3. getch를 두번써서 읽어오는 방법..
세가지가 기억이 나는데.. (기억이 확실하지가 않군요.. 틀린걸 수도 있습니다.)
구체적인 방법은 기억이 나질 않는군요.. 그래서 이전 답변에 적어 놓지를
못했던것인데..ㅜㅜ
3번째 방법은 도서관 같은데서... 도스용 프로그래밍 관련책을 뒤져보시면..
찾을 수 있을겁니다.
가끔 등장을 했던 방법이니까요..
아마 getch로 읽어서... 아무런 값이 없으면..한번더 읽어들이면..
이때 들어오는 값이 scancode 였을겁니다.
초짜 님이 쓰신 글 :
: 답변감사드립니다.
: 물론 윈도우용 툴(빌더나 비줠씨)을 이용해서 프로그래밍을 했다면 이벤트로 처리했겠지만
: 볼랜드 씨뿔뿔 컴파일러로 하려니 문제가 된거였습니다.
: 말씀해주신 스캔코드를 사용하면 된다는건 알겠는데 저걸 어케 뽑아내죠?
: 저런 기능을 가진 라이브러리가 무엇인지요?
: 다시 한번 답변 부탁드립니다.
: 그럼 꾸벅~
:
:
: 조준회 님이 쓰신 글 :
: : OS를 어떤걸 사용하시죠?.
: :
: : 도스라면..scancode라는 것을 알아야 합니다.
: : 간단히만 언급하면..
: :
: : keyboard에서 어떤 키가 눌리게되면..
: : 앞부분의 8비트는 문자가 .. 뒷부분의 8비트는 스캔코드가 들어오게됩니다.
: :
: : 여기서 스캔코드를 뽑아내면.. 특수키등이 눌린것을 알아낼수 있습니다.
: :
: : 윈도우라면.. 간단하게..
: : keydown event등에서 VK_LEFT등으로 비교해서 알아낼수 있습니다.
: :
: :
: : 초짜 님이 쓰신 글 :
: : : 안녕하십니까?
: : : 화살표(이동키) 누르면 "왼쪽 화살표 눌렸습니다." "오른쪽 화살표 눌렸습니다." 하고
: : : 메세지 출력하려고 하는데 이동키가 눌렸다는건 뭘로 구분하죵?
: : : scanf, getche, getc, getch 다해봤는데 이동키의 아스키값을 안넘기더라구요
: : : 어떤걸로 입력을 받아야 화살표(이동키)의 아스키값을 얻어 상하좌우를 구별합니까?
: : : 그럼 초짜의 질문이었슴당~ 꾸벅~
|