Guest User

SendInput WinAPI C

a guest
Nov 30th, 2011
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #define _WIN32_WINNT 0x0501
  2. #include <windows.h>
  3.  
  4. int main(void) {
  5.    
  6.     const UINT fooKey = 65; // ascii value for 'a', ?case ignored?
  7.     const UINT keySize = 2;
  8.     INPUT keyIn[keySize];
  9.     memset(keyIn, 0, sizeof(keyIn));
  10.    
  11.     keyIn[0].type = INPUT_KEYBOARD;
  12.    
  13.     // Key pressed down
  14.     keyIn[0].ki.wScan = MapVirtualKey(fooKey, 0); //key we're going to "press"
  15.     keyIn[0].ki.dwFlags = KEYEVENTF_SCANCODE; // wVk is ignored
  16.     keyIn[0].ki.time = 0; // OS can provide timestamp, we don't care
  17.     keyIn[0].ki.dwExtraInfo = 0;
  18.  
  19.     // Key released/up state
  20.     keyIn[1].ki.wScan = MapVirtualKey(fooKey, 0);
  21.     keyIn[1].ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP; // change state to up
  22.     keyIn[1].ki.time = 0;
  23.     keyIn[1].ki.dwExtraInfo = 0;
  24.  
  25.     while(1){  // ^C to escape
  26.         // second arg should be array of INPUT objects, but bear with me...
  27.         SendInput(1, keyIn[0], sizeof(INPUT) ); // send down only message
  28.         Sleep(3000); // in ms
  29.         SendInput(1, keyIn[1], sizeof(INPUT) ); // send up message, change state
  30.     }
  31.  
  32.     return 0;
  33.  
  34. } // Main
  35.  
  36.  
Advertisement
Add Comment
Please, Sign In to add comment