LoginSignup
4
2

More than 5 years have passed since last update.

Escキーを押して離すだけのプログラム

Last updated at Posted at 2017-09-02

参考

キーボードがどのevent番号か確認

egrep "^(N|H)" /proc/bus/input/devices
  • 自分の場合は/dev/input/event5がキーボードだった。
ls -lh /dev/input/event5
crw-rw---- 1 root input 13, 69  8月 24 18:33 /dev/input/event5
  • ユーザーをinputグループに追加しておく。
  • event5 の番号を固定にしたい場合はudevを使う。

Escキーを押して離すだけのプログラム

write.c
#include <stdio.h>
#include <stdlib.h>
#include <linux/input.h>
#include <sys/time.h>

void write_key_event(int code, int value, int fd)
{
        struct input_event key_event;

        gettimeofday(&key_event.time, NULL);
        key_event.type = EV_KEY;
        key_event.code = code;
        key_event.value = value;
        write(fd, &key_event, sizeof(key_event));
}

int main(void)
{
        write_key_event(KEY_ESC, 1, 1);
        write_key_event(KEY_ESC, 0, 1);

        //int i = 0;
        //int keys[] = { KEY_A ,KEY_B ,KEY_C };
        //while (keys[i] != '\0' ) {
        //      write_key_event(keys[i], 1, 1);
        //      write_key_event(keys[i], 0, 1);
        //      i++;
        //}

        //i = 0;
        //write_key_event(KEY_LEFTSHIFT, 1, 1);
        //while (keys[i] != '\0' ) {
        //      write_key_event(keys[i], 1, 1);
        //      write_key_event(keys[i], 0, 1);
        //      i++;
        //}
        //write_key_event(KEY_LEFTSHIFT, 0, 1);

        exit(EXIT_SUCCESS);
}

実行

gcc -o write.o write.c
./write.o > /dev/input/event5
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2