linux模拟键盘



  1. #include   
  2. #include   
  3. #include   
  4. #include   
  5. #include   
  6. #include   
  7. #include   
  8.   
  9. /* 
  10. struct input_event { 
  11.     struct timeval time; 
  12.     __u16 type; 
  13.     __u16 code; 
  14.     __s32 value; 
  15. }; 
  16.  
  17. #define EV_KEY                  0x01 
  18. */  
  19. int reportkey(int fd, uint16_t type, uint16_t keycode, int32_t value)  
  20. {  
  21.     struct input_event event;  
  22.   
  23.     event.type = type;  
  24.     event.code = keycode;  
  25.     event.value = value;  
  26.   
  27.     gettimeofday(&event.time, 0);  
  28.   
  29.     if (write(fd, &event, sizeof(struct input_event)) < 0) {  
  30.         printf("report key error!\n");  
  31.         return -1;  
  32.     }  
  33.   
  34.     return 0;  
  35. }  
  36.   
  37. #define DEVNAME "/dev/input/event4"  
  38.   
  39. #define KEYDOWN 1  
  40. #define KEYUP   0  
  41.   
  42. int main(int argc, char *argv[])  
  43. {  
  44.     uint16_t keycode;  
  45.   
  46.     int k_fd;  
  47.   
  48.     k_fd = open(DEVNAME, O_RDWR);  
  49.   
  50.     if (k_fd < 0) {  
  51.         printf("open error!\n");  
  52.         return k_fd;  
  53.     }  
  54.   
  55.     keycode = KEY_A;  
  56.     reportkey(k_fd, EV_KEY, keycode, KEYDOWN);  
  57.     reportkey(k_fd, EV_KEY, keycode, KEYUP);  
  58.   
  59.     close(k_fd);  
  60.   
  61.     return 0;  
  62. }  

你可能感兴趣的:(linux,c++)