SendInput在MFC中发送错误的Unicode字符

时间:2017-03-17 13:44:47

标签: c++ unicode mfc sendinput

我有一个简单的SendChar功能:

void SendChar(const char mC)
{
    INPUT ip={0}; KEYBDINPUT kb={0};
    char mK=mC;

    kb.wScan=mK;
    kb.dwFlags=KEYEVENTF_UNICODE;
    ip.type=INPUT_KEYBOARD;
    ip.ki=kb;
    SendInput(1,&ip,sizeof(INPUT));
}

使用普通密钥运行良好但是当我想发送一个unicode字符示例'á'(在unicode表中为0xE1)时,它会发送错误的字符('£')。

SendChar(0xE1);
SendChar('á');

但是它成功了

void SendChar()
 {
      INPUT ip={0}; KEYBDINPUT kb={0};

      kb.wScan=0xE1;
      kb.dwFlags=KEYEVENTF_UNICODE;
      ip.type=INPUT_KEYBOARD;
      ip.ki=kb;
      SendInput(1,&ip,sizeof(INPUT));
  }

请帮我知道我的第一个功能有什么问题?

0 个答案:

没有答案