使用C ++“输入”表情符号

时间:2015-10-20 19:16:55

标签: c++ c windows emoji

我真的不知道我应该在标题中输入什么,但无论如何,这就是我需要的:

我制作的小程序可以做“输入”给定输入的内容。这是一个输入“test”的小例子(例如)。

#include <windows.h>
void Press(int Touch);

int main()
{
    Sleep(5000);//Sleep a bit, so that you can select where to type
    Press(VkKeyScan('t'));
    Press(VkKeyScan('e'));
    Press(VkKeyScan('s'));
    Press(VkKeyScan('t'));

    return 0;
}

void Press(int Touch)
{
    keybd_event(Touch, 0x9d, 0, 0);
    keybd_event(Touch, 0x9d, KEYEVENTF_KEYUP, 0);
}

所以我需要的只是这个,但有表情符号。我需要能够从我的程序中“输入”任何表情符号:“”。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题。

第一种是使用&#34; alt codes&#34;:

  • 按住ALT键
  • 按数字键盘上的+
  • 以十六进制格式输入Unicode代码点
  • 释放ALT键

但是,此方法需要在Windows注册表中设置EnableHexNumpad

第二种是使用Windows剪贴板。

  • 保存Windows剪贴板的内容
  • 将剪贴板内容设置为您要插入的Unicode字符
  • 发送CTRL + V以粘贴字符
  • 将剪贴板还原为以前的内容

答案 1 :(得分:1)

keybd_event已弃用,如MSDN page所述。通常,当您查找Windows功能并且不推荐使用时,您应该考虑使用较新的功能。

使用SendInput,其中包括支持unicode键盘输入仿真。

您可以通过在一行中打包两个不同的INPUT结构来发送非16位干净的unicode字符。