虚拟密钥代码

时间:2016-08-03 14:19:03

标签: c++ winapi console diacritics keycode

我有一个c ++控制台程序。我可以模拟“é”字符吗? 代码:

get_file_contents

如何将其转换为“é”而不是“e”?

感谢。

1 个答案:

答案 0 :(得分:0)

根据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宏或模板函数。)