# include <string.h># include<stdio.h># include<sys/types.h># include<sys/stat.h># include<fcntl.h># include<linux/input.h># include<linux/uinput.h># include<stdio.h># include<sys/time.h># include<sys/types.h># include<unistd.h>voidSimulate_key (intFdintkval) { structInput_eventEvent; Event. Type =Ev_key; Event. Value =1; Event. Code =kval; Gettimeofday (&Event. Time,0); Write (FD,&Event,sizeof(Event)) ; Event. Type =Ev_syn; Event. Code =Syn_report; Event. Value =0; Write (FD,&Event,sizeof(Event)); memset (&Event,0,sizeof(Event)); Gettimeofday (&Event. Time, NULL); Event. Type =Ev_key; Event. Code =kval; Event. Value =0; Write (FD,&Event,sizeof(Event)); Event. Type =Ev_syn; Event. Code =Syn_report; Event. Value =0; Write (FD,&Event,sizeof(Event)); } voidSimulate_mouse (intFD) { structInput_eventEvent; memset (&Event,0,sizeof(Event)); Gettimeofday (&Event. Time, NULL); Event. Type =Ev_rel; Event. Code =rel_x; Event. Value =Ten; Write (FD,&Event,sizeof(Event)); Event. Type =Ev_rel; Event. Code =rel_y; Event. Value =Ten; Write (FD,&Event,sizeof(Event)); Event. Type =Ev_syn; Event. Code =Syn_report; Event. Value =0; Write (FD,&Event,sizeof(Event)); } intMain () {intFD_KBD; intFd_mouse; FD_KBD= Open ("/dev/input/event4", O_RDWR); if(FD_KBD <=0) {printf ("Error Open keyboard:\n"); return-1; } fd_mouse= Open ("/dev/input/event2", O_RDWR); if(Fd_mouse <=0) {printf ("Error Open mouse\n"); return-2; } inti =0; for(i =0; i<Ten; i++) {Simulate_key (FD_KBD, Key_1+i); Simulate_mouse (Fd_mouse); Sleep (1); } close (FD_KBD); }
linux-Analog Keyboard input