Коды виртуальных ключей

У меня есть консольная программа на C ++. Как я могу симулировать символ «é»?
Код:

// Set up a generic keyboard event.
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0; // hardware scan code for key
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = 0x45; //e
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

Как мне преобразовать его в «é» вместо «e»?

Благодарю.

-3

Решение

В соответствии с KEYBDINPUT документацию, вы можете использовать KEYEVENTF_UNICODE флаг:

INPUT ip[2];
// Set up a generic keyboard event.
ip[0].type = INPUT_KEYBOARD;
ip[0].ki.dwFlags = KEYEVENTF_UNICODE;  // We want to send a Unicode key code.
ip[0].ki.wScan = 0x00E9;               // Unicode value of é
ip[0].ki.time = 0;
ip[0].ki.dwExtraInfo = 0;
ip[0].ki.wVk = 0;                      // Ignored

ip[1] = ip[0];  // Duplicate entry
ip[1].ki.dwFlags |= KEYEVENTF_KEYUP;  // but make it key up

SendInput( 2, ip, sizeof(ip[0]));

(Если вы амбициозны, вы можете сделать этот финал «2» вашим любимым ARRAY_COUNT функция макроса или шаблона.)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]