2010-11-25 2 views
4

키를 누르고 있는지 확인하는 간단한 C 프로그램이 있습니다. 지금은 매력처럼 작동하지만 /dev/input/by-path/platform-i8042-serio-0-event-kbd을 통해 키보드 장치에 액세스합니다. /dev/input/by-path/*-kbd은 keyborads를 보유 할 것이지만 그 이름을 가진 파일을 여는 방법을 모르겠습니다.기본 키보드 장치에 액세스

아이디어는 휴대하고 싶습니다. 따라서 프로그램이 다른 컴퓨터에서 실행되면 여전히 작동합니다. 나는 여러 키보드를 사용하는 것에 관심이 없다. (누구나 이와 같은 설정을 사용 하는가?)

미리 감사드립니다.

답변

1

아마도/proc, 즉 /proc/bus/input/devices 키보드 장치 목록을 가져 오는 데 사용할 수 있습니다. 이것은 내 노트북에서 가져온 이름에 "키보드"가있는 장치 목록입니다 (USB 키보드가 연결되어있어 두 번째 질문에 대한 대답이 "예"입니다).

I: Bus=0011 Vendor=0001 Product=0001 Version=ab54 
N: Name="AT Translated Set 2 keyboard" 
P: Phys=isa0060/serio0/input0 
S: Sysfs=/devices/platform/i8042/serio0/input/input0 
U: Uniq= 
H: Handlers=sysrq kbd event0 
B: EV=120013 
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe 
B: MSC=10 
B: LED=7 

I: Bus=0003 Vendor=04d9 Product=1603 Version=0110 
N: Name=" USB Keyboard" 
P: Phys=usb-0000:00:1d.0-2/input0 
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/input/input5 
U: Uniq= 
H: Handlers=sysrq kbd event5 
B: EV=120013 
B: KEY=10000 7 ff800000 7ff febeffdf f3cfffff ffffffff fffffffe 
B: MSC=10 
B: LED=7 

I: Bus=0003 Vendor=04d9 Product=1603 Version=0110 
N: Name=" USB Keyboard" 
P: Phys=usb-0000:00:1d.0-2/input1 
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.1/input/input6 
U: Uniq= 
H: Handlers=kbd event6 
B: EV=13 
B: KEY=2000000 39fa d941d001 1e0000 0 0 0 
B: MSC=10 

I: Bus=0003 Vendor=0000 Product=0000 Version=0004 
N: Name="ACPI Virtual Keyboard Device" 
P: Phys= 
S: Sysfs=/devices/virtual/input/input14 
U: Uniq= 
H: Handlers=sysrq kbd event14 rfkill 
B: EV=3 
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe 
+0

이것은 매우 흥미 롭습니다 . 파일 이름을 분석 할 수 있습니다. 불행히도 파일 이름은'/ device'에 있습니다. 전에는 들어 보지 못했지만 proc에 대해 조금 읽음으로써 알 수있었습니다. – Youarefunny

+0

그 경로는'sysfs' 루트와 관련이 있습니다. 즉'/ sys /'입니다. –

+0

thx 나는 내 기본 키보드를 확인할 때 이것을 사용했다. 이것은 awnser이어야한다. –

관련 문제