use*_*544 2 java linux keyboard
我有一个键盘插入linux盒子然后我在ssh上运行我的Java.我想知道是否有办法告诉Java监听来自特定键盘/终端的输入.由于我想要捕获的键盘插入物理机器而没有用户登录,我不确定有没有办法做到这一点,但我想我可能会问这里?
如果您具有root权限,则可以直接从键盘设备读取键盘事件/dev/input.解码事件需要一点努力,但可以做到; 您可以阅读/ dev/input键盘格式的数据格式.
此代码段会读取键盘事件并识别您按下并释放的AZ键:
// replace path with path from your system
DataInputStream in = new DataInputStream(
new FileInputStream("/dev/input/by-id/usb-0430_0005-event-kbd"));
String map = " abcdefghijlkmnopqrstuvwxyz ";
// sizeof(struct timeval) = 16
byte[] timeval = new byte[16];
short type, code;
int value;
while (true) {
in.readFully(timeval);
type = in.readShort();
code = in.readShort();
value = in.readInt();
System.out.printf("%04x %04x %08x %c\n", type, code, value,
map.charAt(value>>>24));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1464 次 |
| 最近记录: |