1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include <fstream>
#include <windows.h>
#include <WinAble.h>
#define KEYEVENTF_SCANCODE 8
using namespace std;
HKL hKBL;
void keystroke(char a){
INPUT p;
unsigned int vkey = MapVirtualKey( LOBYTE ( VkKeyScanEx(a, hKBL)), 0);
ZeroMemory(&p, sizeof(p));
p.type = INPUT_KEYBOARD;
p.ki.wScan = vkey;
p.ki.dwFlags = KEYEVENTF_SCANCODE;
//SendInput(1, &p, sizeof(p));
//Need shift key for capital letter
if(a>64 && a<90)
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(vkey, vkey, KEYEVENTF_SCANCODE, 0);
p.ki.dwFlags = KEYEVENTF_KEYUP;
if(a>64 && a<90)
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
//SendInput(1, &p, sizeof(p));
keybd_event(vkey, vkey, KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP, 0);
}
int main(){
char buff[20] = {0};
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, buff, sizeof(buff));
hKBL = LoadKeyboardLayout( buff, KLF_ACTIVATE );
ifstream myfile( "test.txt");
Sleep(5000);
char inchar;
while(myfile.good()){
inchar = myfile.get();
keystroke(inchar);
Sleep(10);
}
return 0;
}
|