Login | Join | OpenID | RSS Feed
handle_scancode 사용법
최광용 Lv. 14 llllllllll 
228 hit since 2005/02/20 18:08

버튼의 스캔코드 값을 받아서 해당 키보드의 키값을 키보드 드라이버에 보내주면 됩니다.

버튼을 누른다. -> 버튼의 스캔코드(0x10) 입력됨. -> 키보드의 엔터키(0x1c) 코드를 키보드 드바이스로 보내줌.

키보드 디바이스로 보내줄때는..

handle_scancode(unsigned char scancode, int down);  함수를 사용하시면 됩니다.

handle_scancode(0x1c, 1);   --> 엔터키를 press.
handle_scancode(0x1c + 0x80 , 0);   --> 엔터키를 release.

키보드를 누를 때(Pressed 상태)와 키보드에서 손을 뗐을 때(Released 상태) 각각 코드가 발생합니다.
그래서 release를 안해주면 계속 누르고 있는 효과가 나는걸로 알고 있구요.
보통은 코드값에 0x80을 더하면 release code라고 하더라구요.

해당 버튼이 눌려졌을때 위와같이 handle_scancode 함수를 두번 써주면 될것 같습니다.
도움이 되길 바랍니다.
아래는 참고 사이트 입니다.

http://wiki.kldp.org/wiki.php/WritingLinuxKernelKeylogger
http://www.barcodeman.com/altek/mule/scandoc.php

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(0x1c + 0x80) 이라.. 좋은 방법이군요. ^^
제가 본 code에서는 [OR]시키더군요. (0x1c | 0x80)로..
어차피 결과는 같죠.

Tags
QT