Я внес изменения после прочтения кода @ Натана, этой ссылки и в сочетании с предложением @ jave.web. Этот код можно использовать для ввода символов (как прописных, так и строчных).
#define WINVER 0x0500
#include<windows.h>
void pressKeyB(char mK)
{
HKL kbl = GetKeyboardLayout(0);
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.dwFlags = KEYEVENTF_UNICODE;
if ((int)mK<65 && (int)mK>90) //for lowercase
{
ip.ki.wScan = 0;
ip.ki.wVk = VkKeyScanEx( mK, kbl );
}
else //for uppercase
{
ip.ki.wScan = mK;
ip.ki.wVk = 0;
}
ip.ki.dwExtraInfo = 0;
SendInput(1, &ip, sizeof(INPUT));
}
Ниже приведена функция нажатия клавиши возврата:
void pressEnter()
{
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.dwFlags = KEYEVENTF_UNICODE;
ip.ki.wScan = VK_RETURN; //VK_RETURN is the code of Return key
ip.ki.wVk = 0;
ip.ki.dwExtraInfo = 0;
SendInput(1, &ip, sizeof(INPUT));
}