- 论坛徽章:
- 0
|
- #include <stdio.h>
- #include <unistd.h>
- #include <linux/input.h>
- #include <fcntl.h>
- #include <errno.h>
- void key_simulator(int fd, int key_code, int key_state)
- {
- struct input_event event;
- event.type = EV_KEY;
- event.code = key_code;
- event.value = key_state;
- gettimeofday(&event.time, 0);
- if (write(fd, &event, sizeof(event)) < 0)
- {
- printf("simulate key error!\n");
- return;
- }
- }
- int main()
- {
- int fd_kdb = open("/dev/input/event1", O_RDWR);
- if (fd_kdb <= 0)
- {
- printf("error open keyboard:%s\n", strerror(errno));
- return -1;
- }
-
- key_simulator(fd_kdb, KEY_L, 1);
- key_simulator(fd_kdb, KEY_L, 0);
- key_simulator(fd_kdb, KEY_S, 1);
- key_simulator(fd_kdb, KEY_S, 0);
- key_simulator(fd_kdb, KEY_ENTER, 1);
- key_simulator(fd_kdb, KEY_ENTER, 0);
-
- close(fd_kdb);
- }
复制代码 是我菜了。。没有模拟弹起。改成了上面这个样子
不过还是没有执行ls命令。输出如下:
ls[root@TM-0166 keyEvent]# ls |
|