でもおしっぱにしてからでしょ?
なんか初期化とかミスってんじゃねーの?

BYTE key[256];
memset(key,0,sizeof(key));
GetKeyboardState(key);

Win32のGetKeyboardStateだとどうなのよ?