あ a
い i
う u
え e
お o
と入力するコードを書きました。 新しい関数を試すのはいいのですが、ちょっと実装が愚直だったようです…
※siin,j,kはこの後の実装で使います
#define _WIN32_WINNT 0x0500
#include <windows.h>
#define VK_OEM_AUTO 0xF3
int main(void) {
const char* siin="BCDFGHJKLMNPQRSTVWXYZ";
const char* boin="AIUEO";
int i,j,k;
Sleep(2000);
for(i=0;boin[i];i++) {
INPUT inp[14]={};
inp[0].type=INPUT_KEYBOARD;
inp[0].ki.wVk=VK_OEM_AUTO;
inp[1].type=INPUT_KEYBOARD;
inp[1].ki.wVk=VK_OEM_AUTO;
inp[1].ki.dwFlags=KEYEVENTF_KEYUP;
inp[2].type=INPUT_KEYBOARD;
inp[2].ki.wVk=boin[i];
inp[3].type=INPUT_KEYBOARD;
inp[3].ki.wVk=boin[i];
inp[3].ki.dwFlags=KEYEVENTF_KEYUP;
inp[4].type=INPUT_KEYBOARD;
inp[4].ki.wVk=VK_RETURN;
inp[5].type=INPUT_KEYBOARD;
inp[5].ki.wVk=VK_RETURN;
inp[5].ki.dwFlags=KEYEVENTF_KEYUP;
inp[6].type=INPUT_KEYBOARD;
inp[6].ki.wVk=VK_OEM_AUTO;
inp[7].type=INPUT_KEYBOARD;
inp[7].ki.wVk=VK_OEM_AUTO;
inp[7].ki.dwFlags=KEYEVENTF_KEYUP;
inp[8].type=INPUT_KEYBOARD;
inp[8].ki.wVk=VK_SPACE;
inp[9].type=INPUT_KEYBOARD;
inp[9].ki.wVk=VK_SPACE;
inp[9].ki.dwFlags=KEYEVENTF_KEYUP;
inp[10].type=INPUT_KEYBOARD;
inp[10].ki.wVk=boin[i];
inp[11].type=INPUT_KEYBOARD;
inp[11].ki.wVk=boin[i];
inp[11].ki.dwFlags=KEYEVENTF_KEYUP;
inp[12].type=INPUT_KEYBOARD;
inp[12].ki.wVk=VK_RETURN;
inp[13].type=INPUT_KEYBOARD;
inp[13].ki.wVk=VK_RETURN;
inp[13].ki.dwFlags=KEYEVENTF_KEYUP;
SendInput(14,inp,sizeof(INPUT));
}
return 0;
}
何の為にfor文使っているのかが一番理解不能かな。それと基本的にmain関数の中に処理を書くのは勉強の範囲だけにしたほうが良いかと、実務では出来る限りやらないほうが良いです。
for文追加で代入一発でOKと言いたいところだが、よく見たら各要素数毎に整合性が取れていないな。 これは単にコピペミスなのか、番号ごとに微妙に違うデータを入れたいのかどちらなのかな? それにしても、代入数すら一致していないので、要素数毎に初期化されていない地雷原が埋もれていますね。
ググってコピペしてるとよくこういうことになる。そのままリリースはないけど