使用SendInput()输入希腊字母

时间:2016-01-06 16:17:39

标签: c++ winapi

我正在尝试用C ++创建一个程序,它接受来自给定字符串的字符,并使用SendInput()命令模拟每个字符的按钮按下。它适用于ASCII字符,如拉丁字母和标准符号,但它不适用于unicode字符,特别是我试图输入希腊语。例如,它不打印希腊字母'Σ',而是打印这个字符,看起来像日本的'ム'。任何人都可以解释为什么会发生这种情况,我该如何解决? 这是我每次按键的功能:

void Press(char c)
{
      INPUT in;
      in.type = INPUT_KEYBOARD;
      in.ki.wVk = 0;
      in.ki.wScan = c;
      in.ki.time = 0;
      in.ki.dwFlags = KEYEVENTF_UNICODE;
      in.ki.dwExtraInfo = 0;

      INPUT i[] = { in };
      SendInput(1, i, sizeof(in));

}

0 个答案:

没有答案